Heim >Datenbank >MySQL-Tutorial >Wie verwende ich den MySQL LIKE-Operator effektiv für mehrere Werte?
Verwendung des MySQL-ähnlichen Operators für mehrere Werte
Problem:
Eine MySQL-Abfrage versucht Verwenden Sie den LIKE-Operator für übereinstimmende Werte, die entweder „sports“ oder „pub“ enthalten, führt nicht zum gewünschten Ergebnis Ergebnisse.
Abfrage:
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Erwartetes Verhalten:
Die Abfrage sollte Zeilen zurückgeben, in denen die „Interessen“ Das Feld enthält entweder „Sport“ oder „Pub“ oder beides.
Erklärung:
Das Problem entsteht, weil der LIKE-Operator mit mehreren Mustern OR-Bedingungen erfordert. Die bereitgestellte Abfrage versucht, zwei aufeinanderfolgende LIKE-Operatoren ohne richtige ODER-Logik zu verwenden, was zu einer falschen Übereinstimmung führt.
Lösung 1: ODER-Bedingung
Eine einfachere Lösung ist die Verwendung der OR-Operator, um die mehreren Übereinstimmungskriterien anzugeben:
SELECT * FROM table WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Lösung 2: REGEXP Operator
Ein alternativer Ansatz ist die Verwendung des REGEXP-Operators (regulärer Ausdruck), der den Mustervergleich mit einem einzelnen Ausdruck unterstützt:
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
Dieser Ausdruck verwendet das | (Pipe-)Zeichen, um ein logisches ODER zwischen den beiden Schlüsselwörtern anzugeben, was zu einem einzelnen Muster führt, das entweder mit „sports“ oder „pub“ oder beiden übereinstimmt.
Beachten Sie, dass der REGEXP-Operator für den Abgleich mehrerer Muster effizienter ist im Vergleich zur Verwendung von LIKE mit ODER-Bedingungen.
Das obige ist der detaillierte Inhalt vonWie verwende ich den MySQL LIKE-Operator effektiv für mehrere Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!