MySQLs LIKE- und mehrere Wildcard-Muster
Problem:
Kann MySQL effizient LIKE
Suchvorgänge verarbeiten, die mehrere Platzhaltermuster umfassen? Beispielsweise wird gleichzeitig nach Zeichenfolgen gesucht, die „40 %“, „38 %“ und „40 %“ enthalten.
Lösung:
MySQL bietet keine direkte LIKE IN()
Funktion. Eine äußerst effektive Problemumgehung besteht jedoch darin, reguläre Ausdrücke (REGEXP) zu verwenden. Dies ermöglicht den Abgleich mehrerer Muster innerhalb einer einzigen Abfrage:
SELECT * FROM fiberbox WHERE field REGEXP '1740|1938|1940';
Diese Abfrage durchsucht die fiberbox
-Spalte der field
-Tabelle nach Zeilen, die eines der angegebenen Muster enthalten. Das |
(Pipe)-Symbol fungiert als „oder“-Operator und passt auf jede Zeile, in der mindestens ein Muster vorhanden ist.
Leistungsaspekte:
Die relative Leistung von REGEXP
im Vergleich zu mehreren LIKE
-Anweisungen (z. B. WHERE field LIKE '40%' OR field LIKE '38%' OR field LIKE '40%'
) hängt stark von den spezifischen Daten und der Abfrage ab. Es ist wichtig, beide Methoden zu vergleichen, um den effizientesten Ansatz für Ihren speziellen Datensatz und Ihre Abfrageanforderungen zu ermitteln.
Das obige ist der detaillierte Inhalt vonKann MySQL eine LIKE-Suche mit mehreren Platzhaltermustern durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!