2 Stimmen

"Merge" IN und LIKE Operator in MySql

Ich habe ein Problem und frage mich, ob es einen besseren Weg gibt, mein Ziel zu erreichen. Ich habe diese Abfrage in Mysql, um einige Zeilen abzurufen:

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

Was ich gerne tun würde, ist eine Abfrage auszuführen, die die Zeilen abruft, in denen das Feld einen Wert enthält, der den Werten in der IN-Liste ähnelt. Ich weiß, dass der übliche Weg ist, diese Abfrage zu verwenden:

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

Was ich wissen möchte, ob es einen Operator gibt, der dies tut oder zumindest, wenn dieser Operator nicht existiert, einen besseren Weg, die Abfrage zu schreiben.

Danke an alle, die mir helfen werden.

1voto

onedaywhen Punkte 52850

Legen Sie die Werte in einer Tabelle (Params) ab und verwenden Sie dann

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

Betrachten Sie auch das Einfügen von Platzhalterzeichen in die Werte in der Params-Tabelle.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X