Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

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 '\\.'
  • 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.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen