Heim > Datenbank > MySQL-Tutorial > Warum kann meine MySQL-Abfrage, die LIKE verwendet, keine Zeichenfolgen finden, die mit „ALA' beginnen, gefolgt von einer einzelnen Ziffer?

Warum kann meine MySQL-Abfrage, die LIKE verwendet, keine Zeichenfolgen finden, die mit „ALA' beginnen, gefolgt von einer einzelnen Ziffer?

Patricia Arquette
Freigeben: 2024-10-26 11:34:02
Original
915 Leute haben es durchsucht

 Why is My MySQL Query Using LIKE Failing to Match Strings Starting with

Regex-Abgleich in MySQL-Abfragen

In der Datenbankverwaltung sind reguläre Ausdrücke (Regex) leistungsstarke Werkzeuge zum Suchen und Abgleichen von Mustern innerhalb von Zeichenfolgen. Beispielsweise müssen Sie möglicherweise anhand bestimmter Zeichenfolgenkriterien nach bestimmten Datensätzen in einer Datenbank suchen.

Das Problem: Regex mit LIKE-Operator

Sie sind auf ein Problem gestoßen Der Versuch, mit dem LIKE-Operator nach Datensätzen zu suchen, die mit einer bestimmten Zeichenfolge gefolgt von einer einzelnen Ziffer beginnen. Ihre Abfragen konnten trotz des Vorhandenseins relevanter Daten in der Tabelle keine übereinstimmenden Datensätze zurückgeben.

Lösung: Verwenden von REGEXP anstelle von LIKE

Um das Problem zu beheben, verwenden Sie it Es wird empfohlen, den REGEXP-Operator anstelle von LIKE zu verwenden. REGEXP bietet erweiterte und flexible Mustervergleichsfunktionen.

Hier ist eine angepasste Abfrage, die korrekt funktionieren sollte:

SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')
Nach dem Login kopieren

Erklärung:

  • Das Zeichen ^ verankert das Muster am Anfang der Zeichenfolge und stellt sicher, dass es mit Datensätzen übereinstimmt, die mit „ALA“ beginnen.
  • Die Zeichenklasse [0-9] entspricht jeder einzelnen Ziffer von 0 bis 9.
  • Zusammen stimmt „^ALA[0-9]“ mit Zeichenfolgen überein, die mit „ALA“ gefolgt von einer einzelnen Ziffer beginnen.

Zusätzliche Überlegungen

  • Stellen Sie sicher, dass Ihre Datenbank-Engine REGEXP unterstützt, da einige ältere Versionen dies möglicherweise nicht tun.
  • Die von Ihnen verwendete Innodb-Engine unterstützt REGEXP.
  • Wenn Sie auf Probleme stoßen, Überprüfen Sie, ob Ihre PHP-MySQL-Konfiguration korrekt ist.

Das obige ist der detaillierte Inhalt vonWarum kann meine MySQL-Abfrage, die LIKE verwendet, keine Zeichenfolgen finden, die mit „ALA' beginnen, gefolgt von einer einzelnen Ziffer?. 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