Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere String-Suchen in MySQL effizient durchführen?
Verwenden Sie die MySQL-Funktion find_in_set() für die Suche nach mehreren Zeichenfolgen
Die Funktion find_in_set() von MySQL kann jeweils nur eine einzelne Zeichenfolge durchsuchen. In praktischen Anwendungen ist es jedoch häufig erforderlich, mehrere Zeichenfolgen gleichzeitig zu durchsuchen.
Zum Beispiel:
<code class="language-sql">find_in_set('a', 'a,b,c,d')</code>
Hier ist „a“ die einzige Suchzeichenfolge. Wenn Sie nach mehreren Zeichenfolgen suchen möchten, z. B. „a,b,c“, können Sie die folgende Methode verwenden:
<code class="language-sql">find_in_set('a', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d') OR find_in_set('c', 'a,b,c,d')</code>
Diese Methode verwendet den OR-Operator, um mehrere find_in_set()-Aufrufe zu kombinieren. Es gibt jedoch eine effizientere Lösung:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
Diese Methode fügt Kommas am Anfang und Ende des Felds „setcolumn“ für den Mustervergleich mit regulären Ausdrücken hinzu. Darunter:
Dieser Trick sucht effektiv nach Zeilen, deren „setcolumn“ alle angegebenen Zeichenfolgen enthält, und bietet so eine flexiblere und effizientere Alternative zu mehreren find_in_set()-Aufrufen.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere String-Suchen in MySQL effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!