Heim > Datenbank > MySQL-Tutorial > Wie frage ich effizient mehrere Werte mit dem LIKE-Operator von MySQL ab?

Wie frage ich effizient mehrere Werte mit dem LIKE-Operator von MySQL ab?

Mary-Kate Olsen
Freigeben: 2025-01-06 03:37:39
Original
924 Leute haben es durchsucht

How to Efficiently Query Multiple Values with MySQL's LIKE Operator?

Mehrere Werte in MySQL-LIKE-Abfragen

In Datenbanken wird der LIKE-Operator häufig verwendet, um Muster in Zeichenfolgen abzugleichen. Allerdings kann es schwierig werden, wenn Sie Übereinstimmungen für mehrere Werte in einem einzelnen Feld finden müssen. In diesem Artikel wird das Problem der Abfrage mehrerer Werte mit dem LIKE-Operator in MySQL untersucht.

Warum die LIKE-Abfrage nicht funktioniert

Gemäß Ihrer bereitgestellten Abfrage:

SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Nach dem Login kopieren

Diese Abfrage versucht, Zeilen abzurufen, in denen das Feld „Interessen“ entweder „Sport“ oder „Pub“ oder beides enthält. Es kann jedoch sein, dass dadurch nicht die gewünschten Ergebnisse erzielt werden, da LIKE nacheinander prüft, ob die angegebenen Muster vorhanden sind. In diesem Fall wird zuerst nach „%sports%“ gesucht, das in allen Zeilen vorhanden ist, und dann nach „%pub%“, das nur in einer Zeile vorhanden ist. Sie erhalten also nur die Zeile, die sowohl „Sport“ als auch „Pub“ enthält.

Schnellere und effizientere Lösungen

Anstatt LIKE mit mehreren Mustern zu verwenden, Betrachten Sie die folgenden Alternativen:

ODER Logisch Operator:

WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Nach dem Login kopieren

Diese Abfrage verwendet den logischen OR-Operator, um zwei LIKE-Anweisungen zu kombinieren. Es werden alle Zeilen zurückgegeben, die mit einem der Muster übereinstimmen. Diese Methode ist im Allgemeinen schneller als LIKE mit mehreren Mustern.

REGEXP Regulärer Ausdruck:

WHERE interests REGEXP 'sports|pub'
Nach dem Login kopieren

Mit dem REGEXP-Operator können Sie nach regulären Ausdrücken suchen. In diesem Fall bedeutet der Ausdruck „sports|pub“, dass Übereinstimmungen für „sports“ oder „pub“ gefunden werden. REGEXP kann ein leistungsstarkes Werkzeug für den komplexeren Mustervergleich sein.

Referenzlinks:

  • Diskussion im MySQL-Forum: http://forums.mysql.com/read.php?10,392332,392950#msg-392950
  • MySQL REGEXP-Dokumentation: http://www.tutorialspoint.com/mysql/mysql-regexps.htm

Das obige ist der detaillierte Inhalt vonWie frage ich effizient mehrere Werte mit dem LIKE-Operator von MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage