152 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
+-------+----------+---------+-------------+------------+-----------+
| Claws | Gwen | Katze | m | 1994-03-17 | NULL |
| Buffy | Harold | Hund | w | 1989-05-13 | NULL |
+-------+----------+---------+-------------+------------+-----------+
Die andere Art von Suchmuster-
¨
Ubereinstimmung benutzt erweiterte regul¨are Ausdr¨ucke.
Wenn Sie bei dieser Art von Suchmuster auf
¨
Ubereinstimmung pr¨ufen, benutzen Sie die
REGEXP- und NOT REGEXP-Operatoren (oder RLIKE und NOT RLIKE, die synonym sind).
Einige Charakteristika erweiterter regul¨arer Ausdr¨ucke sind:
• ‘.’ findet jedes beliebige Zeichen.
• Eine Zeichenklasse ‘[...]’ findet jedes Zeichen innerhalb der eckigen Klammern. So
stimmt zum Beispiel ‘[abc]’ mit ‘a’, ‘b’ oder ‘c’ ¨uberein. Um einen Bereich von Zeichen
zu benennen, benutzen Sie einen Bindestrich. ‘[a-z]’ stimmt mit jedem Buchstaben
in Kleinschreibung ¨uberein, wohingegen ‘[0-9]’ mit jeder Ziffer ¨ubereinstimmt.
• ‘*’ stimmt mit null oder mehr Instanzen der Sache ¨uberein, die ihm voransteht. ‘x*’
zum Beispiel stimmt mit einer beliebigen Anzahl von ‘x’-Zeichen ¨uberein. ‘[0-9]*’
stimmt mit einer beliebigen Anzahl von Ziffern ¨uberein, und ‘.*’ mit jeder Anzahl von
irgendetwas.
• Regul¨are Ausdr¨ucke achten auf Groß-/Kleinschreibung, aber Sie k¨onnen eine Zeichen-
klasse benutzen, um beide Schreibungen zu finden, wenn Sie wollen. ‘[aA]’ zum Beispiel
stimmt mit ‘a’ in Groß- und Kleinschreibung ¨uberein und ‘[a-zA-Z]’ mit jedem Buch-
staben in Groß- und Kleinschreibung.
• Das Suchmuster stimmt ¨uberein, wenn es irgendwo in dem Wert auftaucht, der
¨uberpr ¨uft wird. (SQL-Suchmuster stimmen nur ¨uberein, wenn sie mit dem gesamten
Wert ¨ubereinstimmen.)
• Um ein Suchmuster so zu verankern, dass er mit dem Anfang oder dem Ende des
¨uberpr ¨uften Werts ¨ubereinstimmen muss, benutzen Sie ‘^’ am Anfang oder ‘$’ am
Ende des Suchmusters.
Um darzustellen, wie erweiterte regul¨are Ausdr¨ucke funktionieren, werden die
LIKE-Anfragen von oben noch einmal mit REGEXP gezeigt.
Um Namen zu finden, die mit ‘b’ anfangen, benutzen Sie ‘^’, um auf
¨
Ubereinstimmung am
Anfang des Namens zu pr¨ufen:
mysql> SELECT * FROM pet WHERE name REGEXP "^b";
+--------+-----------+---------+-------------+------------+------------+
| name | besitzer | art | geschlecht | geburtstag | sterbetag |
+--------+-----------+---------+-------------+------------+------------+
| Buffy | Harold | Hund | w | 1989-05-13 | NULL |
| Bowser | Diane | Hund | m | 1989-08-31 | 1995-07-29 |
+--------+-----------+---------+-------------+------------+------------+
Vor MySQL-Version 3.23.4 achtet REGEXP auf Groß-/Kleinschreibung. Daher gibt diese
Anfrage ein Ergebnis ohne Zeilen zur¨uck. Um sowohl Groß- als auch Kleinschreibung von
‘b’ zu finden, benutzen Sie statt dessen folgende Anfrage:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
Ab MySQL 3.23.4 m¨ussen Sie, um die Beachtung der Groß-/Kleinschreibung in einem
REGEXP-Vergleich zu erzwingen, das BINARY-Schl¨usselwort verwenden, um eine der Zeichen-
Comentarios a estos manuales