MySQL REGEXP Schlüsselwort
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';
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
WHERE BINARY column_name REGEXP 'pattern';
Beispiele
1. Grundlegende Musterabgleiche
SELECT *
FROM products
WHERE product_name REGEXP '^C';
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';
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}$';
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
\.
:
WHERE column_name REGEXP '\\.'
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.