2016-08-01 6 views
0

Dies hat wahrscheinlich eine einfache Lösung, obwohl es etwas schwieriger gemacht wird, weil die Datenbank aufgebaut ist, ist es nicht meins. Eine Spalte in der Datenbank hat einen Textwert im Format text1DDtext2DDtext3, wobei DD ein Trennzeichen ist, durch das sie durchgehen, anstatt eine separate Tabelle für 0 bis n Werte zu haben, die in diese Spalte gehören.MySQL verwendet LIKE oder IN, um eine Abfrage zu lösen

Es ist eine Suche, die ausgeführt wird, in dem, was ich mit zu beginnen haben, ist:

"text1","text2", "text3", . . . 

Alles, was ich tun möchte, ist auf einer Abfrage zu erstellen, die, wenn eine der „textn“ Strings überprüft, sind im Spaltenfeld, obwohl es nett wäre, eine Abfrage zu haben, die auch überprüft, ob alle Textwerte der Suchzeichenfolge im Spaltenwert sind. Die Reihenfolge, in der sie in der Spalte gespeichert sind, kann variieren, ebenso wie die Suchzeichenfolge. Wenn es eine verknüpfte Tabelle mit einzelnen Werten in einer Spalte gäbe, wäre das nicht sehr schwierig.

Ich habe nur verschiedene Kombinationen von IN und LIKE, und das scheint nicht zu funktionieren.

Danke.

+0

Bitte erstellen sqlfiddle mit 4-5 möglichen Einträgen – C2486

+0

See Verband oder [Junction Tabellen] (http://stackoverflow.com/a/32620163) für 1: 1 oder 1: Viele . Und keine CSV oder in Ihrem Fall keine DD SV. – Drew

Antwort

1

Versuch:

SELECT columnYouWant FROM dbo.table WHERE UPPER(column) LIKE ('%TEXT%'); 
Verwandte Themen