Latest web development tutorials

MySQL Regular Expressions

Im vorigen Abschnitt haben wir durch die MySQL LIKE ...% für Fuzzy Matching gelernt.

MySQL unterstützt auch andere reguläre Ausdrücke, MySQL REGEXP Operator reguläre Ausdrücke zu verwenden.

Wenn Sie PHP oder Perl kennen, dann ist die Bedienung sehr einfach, weil MySQL regulären Ausdruck dieser Skripte ähnlich entsprechen.

In der Tabelle unter dem Normalmodus kann es in der REGEXP Operator verwendet werden.

Modus Beschreibung
^ Spiele den Anfang des Strings. Wenn Sie die Multiline-Eigenschaft des RegExp-Objekt gesetzt, ^ entspricht auch '\ n' Position oder '\ r' nach.
$ Passen Sie die Eingangsende der Saite. Wenn setzen Sie das Objekt mehrzeilige Eigenschaft RegExp, auch passend $ '\ n' oder '\ r' Position vor.
. Entspricht einem einzelnen Zeichen außer "\ n" ist. wie die Verwendung von '[. \ N] "-Modus mit' \ n ', einschließlich aller Zeichen, übereinstimmen.
[...] Set von Zeichen. Jedes Zeichen enthalten. Zum Beispiel: '[abc]' entspricht "plain" in der "a".
[^ ...] Negative Zeichensatz. Entspricht einem beliebigen Zeichen, die nicht enthalten ist. Zum Beispiel: '[^ abc] "Streichhölzer" plain "in der' p '.
p1 | p2 | p3 Match p1, p2, p3 oder. Zum Beispiel: 'z | Lebensmittel "können die" z "oder" Essen "entsprechen. '(Z | f) OOD' wird "Zood" oder "Essen" entsprechen.
* Spiele die vorangegangenen subexpression null oder mehrere Male. Zum Beispiel zo * können die "z" und "Zoo" entsprechen. * Entspricht {0,}.
+ Spiele die vorangegangenen subexpression ein oder mehrere Male. Zum Beispiel: 'zo +' wird "zo" und "Zoo" entsprechen, sondern kann die "z" nicht überein. + Entspricht {1}.
{N} n ist eine nicht negative ganze Zahl ist. Die Anpassung der ermittelten n-mal. Zum Beispiel: 'o {2}' die "Bob" nicht in der 'o', entsprechen aber der "Lebensmittel" in den beiden o entsprechen.
{N, m} m und n sind nicht negative ganze Zahlen sind, wobei n <= m. Mindestens n-mal und passen bis m-mal.

Beispiele

Sobald Sie regelmäßiger Bedürfnisse kennen, können wir mehr auf ihre eigenen Bedürfnisse zu SQL-Anweisung mit einem regulären Ausdruck zu schreiben. Im Folgenden werden wir ein paar kleine Beispiele (Tabellenname: person_tbl) Liste unser Verständnis zu vertiefen:

Finden Sie alle Daten Feldnamen 'st' beginnend mit:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Finden Sie alle Daten Feldnamen 'ok' für das Ende:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Finden Sie ein Namensfeld 'mar' Strings alle Daten enthält:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Finden Sie ein Namensfeld mit Vokalen und mit "ok" Ende der Kette aller Daten zu beginnen:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';