Effiziente MySQL-String-Eindämmung: Mehr als substr()
MySQL erfordert häufig eine Überprüfung, ob eine Spaltenzeichenfolge ($haystack
) eine bestimmte Teilzeichenfolge ($needle
) enthält. Obwohl die Funktion substr()
in Betracht gezogen werden könnte, überprüft sie nur genaue Übereinstimmungen am Anfang der Zeichenfolge.
Die optimale Lösung: LIKE
und Wildcards
Die überlegene Methode beinhaltet den LIKE
-Operator von MySQL für den Mustervergleich. Diese Abfrage prüft effizient, ob Teilzeichenfolgen enthalten sind:
<code class="language-sql">SELECT * FROM `table` WHERE `column` LIKE '%{$needle}%'</code>
Die %
-Symbole sind Platzhalter, die null oder mehr Zeichen entsprechen. Daher identifiziert die Abfrage jede Zeile, in der $haystack
an einer beliebigen Position $needle
enthält.
Leistungsüberlegungen zur Skalierbarkeit
Die Verwendung von LIKE
mit Platzhaltern kann die Leistung bei großen Datensätzen beeinträchtigen. Erwägen Sie bei umfangreichen Datenbanken die Implementierung einer Volltextindizierung, um die Abfragegeschwindigkeit für solche Zeichenfolgensuchen deutlich zu verbessern.
Das obige ist der detaillierte Inhalt vonWie kann man in MySQL effizient auf String-Enthaltenheit prüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!