Verwenden Sie in MySQL-SELECT-Anweisungen reguläre Ausdrücke

Eine sehr coole und leistungsstarke Funktion in MySQL und anderen Datenbanken ist die Möglichkeit, bei der Auswahl von Daten die Syntax regulärer Ausdrücke zu verwenden. Die regelmäßige Unterstützung von Ausdrücken in MySQL ist umfangreich. Dieses Rezept überprüft die Verwendung regulärer Ausdrücke in MySQL und listet die unterstützten regulären Ausdrucks-Metazeichen auf.


Die grundlegende Syntax für die Verwendung regulärer Ausdrücke in einer MySQL-Abfrage lautet:

SELECT etwas FROM Tabelle WHERE Spalte REGEXP 'regexp'

Um beispielsweise alle Spalten aus den Tabellenereignissen auszuwählen, deren Werte in der Spalten-ID mit 5587 enden, verwenden Sie Folgendes:

SELECT * FROM Ereignisse WHERE ID REGEXP '5587 $'

In einem ausführlicheren Beispiel werden alle Spalten der Tabellenprüfungen ausgewählt, bei denen die Werte in der Spaltenbeschreibung das Wort ausgezeichnet enthalten:

AUSWÄHLEN * VON Rezensionen WO Beschreibung REGEXP '[[::]]'

MySQL erlaubt die folgenden regulären Ausdrucks-Metazeichen:

. passt zu jedem Zeichen
? null oder eins übereinstimmen
* null oder mehr übereinstimmen
+ Übereinstimmung mit einem oder mehreren
{n} entspricht n-mal
{m, n} passt m bis n mal an
{n,} n oder mehrmals übereinstimmen
^ Zeilenanfang
$ Zeilenende
[[]]] passt auf das Ende der Wörter
[: class:] entspricht einer Zeichenklasse
d.h. [: alpha:] für Buchstaben
[: space:] für Leerzeichen
[: punct:] für Interpunktion
[: upper:] für Großbuchstaben
[abc] stimmt mit einer der eingeschlossenen Zeichen überein
[^ xyz] stimmt mit einem nicht eingeschlossenen Zeichen überein
| trennt Alternativen

MySQL interpretiert einen Backslash (\) als ein Escape-Zeichen. Um einen umgekehrten Schrägstrich in einem regulären Ausdruck zu verwenden, müssen Sie ihn mit einem anderen umgekehrten Schrägstrich (\) kennzeichnen.