Das Schlüsselwort REGEXP wird in MySQL für den Mustervergleich mit regulären Ausdrücken verwendet. Es ermöglicht dir, nach komplexen Mustern in Zeichenketten in deinen Tabellen zu suchen.
Verwendung
Das Schlüsselwort REGEXP wird normalerweise in der WHERE Klausel verwendet, um Datensätze danach zu filtern, ob eine Zeichenkette mit einem bestimmten regulären Ausdruck übereinstimmt. Es ist ein leistungsstarkes Werkzeug für die Textsuche und Mustererkennung. Die regulären Ausdrücke von MySQL basieren auf dem POSIX-Standard und können sich leicht von anderen Regex-Implementierungen unterscheiden.
SELECT column_name
FROM table_name
WHERE column_name REGEXP'pattern';Bereitgestellt von
In dieser Syntax prüft REGEXP 'pattern', ob column_name mit dem angegebenen regulären Ausdruck übereinstimmt. Beachte, dass REGEXP standardmäßig die Groß- und Kleinschreibung nicht berücksichtigt. Um die Groß- und Kleinschreibung zu berücksichtigen, verwendest du das Schlüsselwort BINARY:
SELECT column_name
FROM table_name
WHEREBINARY column_name REGEXP'pattern';Bereitgestellt von
In diesem Beispiel werden alle Zeilen aus der Tabelle products ausgewählt, in denen product_name mit dem Buchstaben "C" beginnt. Das Muster '^C' verwendet ^, um den Anfang der Zeichenkette zu kennzeichnen und sicherzustellen, dass nur Namen, die mit "C" beginnen, gefunden werden.
2. Mehrere Muster abgleichen
SELECT email
FROM users
WHERE email REGEXP'gmail|yahoo';Bereitgestellt von
Hier werden E-Mails aus der Tabelle users abgefragt, die entweder "gmail" oder "yahoo" enthalten.
3. Komplexe Musterabgleiche
SELECT phone_number
FROM contacts
WHERE phone_number REGEXP'^[0-9]{3}-[0-9]{3}-[0-9]{4}$';Bereitgestellt von
In diesem Beispiel werden Telefonnummern aus contacts ausgewählt, die dem Muster für nordamerikanische Telefonnummern im Format XXX-XXX-XXXX entsprechen.
Tipps und bewährte Praktiken
Optimiere die Leistung. Reguläre Ausdrücke können ressourcenintensiv sein; verwende sie mit Bedacht und überlege dir, ob du die Spalten indizieren willst, wenn möglich. Verwende EXPLAIN, um die Abfrageleistung bei der Verwendung regulärer Ausdrücke zu analysieren.
Teste die Muster separat. Teste deine regulären Ausdrücke in einer separaten Umgebung, um sicherzustellen, dass sie wie erwartet funktionieren, bevor du sie auf deine Abfragen anwendest.
Verwende Anker mit Bedacht. Verwende ^ und $, um den Anfang bzw. das Ende einer Zeichenkette zu bezeichnen, damit die Mustererkennung präziser wird.
Sonderzeichen ausblenden. Wenn dein Muster Sonderzeichen enthält, musst du sicherstellen, dass sie richtig escaped werden, um unerwartete Treffer zu vermeiden. Um zum Beispiel einen Punkt zu finden, verwende \.:
Hinweis zur Kompatibilität. MySQL unterstützt zwar grundlegende reguläre Ausdrücke, nicht aber Funktionen wie Lookaheads und Lookbehinds.
Der Unterschied zu LIKE. Im Gegensatz zu REGEXP, das komplexe Muster unterstützt, wird LIKE für einfachere Musterabgleiche mit den Wildcards % und _ verwendet. Verwende LIKE für einfache Muster und REGEXP für komplexere Anforderungen.
Das Schlüsselwort
REGEXPwird in MySQL für den Mustervergleich mit regulären Ausdrücken verwendet. Es ermöglicht dir, nach komplexen Mustern in Zeichenketten in deinen Tabellen zu suchen.Verwendung
Das Schlüsselwort
REGEXPwird normalerweise in derWHEREKlausel verwendet, um Datensätze danach zu filtern, ob eine Zeichenkette mit einem bestimmten regulären Ausdruck übereinstimmt. Es ist ein leistungsstarkes Werkzeug für die Textsuche und Mustererkennung. Die regulären Ausdrücke von MySQL basieren auf dem POSIX-Standard und können sich leicht von anderen Regex-Implementierungen unterscheiden.In dieser Syntax prüft
REGEXP 'pattern', obcolumn_namemit dem angegebenen regulären Ausdruck übereinstimmt. Beachte, dassREGEXPstandardmäßig die Groß- und Kleinschreibung nicht berücksichtigt. Um die Groß- und Kleinschreibung zu berücksichtigen, verwendest du das SchlüsselwortBINARY:Beispiele
1. Grundlegende Musterabgleiche
In diesem Beispiel werden alle Zeilen aus der Tabelle
productsausgewählt, in denenproduct_namemit dem Buchstaben "C" beginnt. Das Muster'^C'verwendet^, um den Anfang der Zeichenkette zu kennzeichnen und sicherzustellen, dass nur Namen, die mit "C" beginnen, gefunden werden.2. Mehrere Muster abgleichen
Hier werden E-Mails aus der Tabelle
usersabgefragt, die entweder "gmail" oder "yahoo" enthalten.3. Komplexe Musterabgleiche
In diesem Beispiel werden Telefonnummern aus
contactsausgewählt, die dem Muster für nordamerikanische Telefonnummern im FormatXXX-XXX-XXXXentsprechen.Tipps und bewährte Praktiken
EXPLAIN, um die Abfrageleistung bei der Verwendung regulärer Ausdrücke zu analysieren.^und$, um den Anfang bzw. das Ende einer Zeichenkette zu bezeichnen, damit die Mustererkennung präziser wird.\.:REGEXP, das komplexe Muster unterstützt, wirdLIKEfür einfachere Musterabgleiche mit den Wildcards%und_verwendet. VerwendeLIKEfür einfache Muster undREGEXPfür komplexere Anforderungen.