Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Funktionsweise von NOT REGEXP in MySQL

In MySQL NOT REGEXP ist eine Negation des REGEXP Betreiber.

Mit anderen Worten, wenn die Zeichenfolge mit dem bereitgestellten regulären Ausdruck übereinstimmt, ist das Ergebnis 0 , andernfalls ist es 1 . Dies ist das gegenteilige Ergebnis zu dem, was REGEXP zurückgeben würde (wenn ihm nicht NOT vorangestellt ist ).

Syntax

Die Syntax lautet wie folgt:

expr NOT REGEXP pat

Wobei expr ist die Eingabezeichenfolge und pat ist der reguläre Ausdruck, für den Sie die Zeichenfolge testen.

Dies entspricht dem folgenden Vorgang:

NOT (expr REGEXP pat)

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel für die Verwendung in einem SELECT Aussage:

SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';

Ergebnis:

+--------+
| Result |
+--------+
|      0 |
+--------+

Hier wird das Muster abgeglichen, wenn der Eingabestring mit Br beginnt . Das tut es, aber weil wir NOT REGEXP verwenden erhalten wir ein negatives Ergebnis (0 ).

Die obige Anweisung ist das Äquivalent dazu:

SELECT NOT ('Bread' REGEXP '^Br') AS 'Result';

Ergebnis:

+--------+
| Result |
+--------+
|      0 |
+--------+

Beispiel 2 – Vergleich mit REGEXP

Zur Verdeutlichung vergleichen wir hier die Ergebnisse von REGEXP und NOT REGEXP :

SELECT 
  'Bread' REGEXP '^Br' AS 'REGEXP',
  'Bread' NOT REGEXP '^Br' AS 'NOT REGEXP';

Ergebnis:

+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      1 |          0 |
+--------+------------+

Beispiel 3 – Ein positives Ergebnis

Die vorherigen Beispiele führten zu 0 für NOT REGEXP , weil der String tat stimmt eigentlich mit dem Muster überein. Hier ist ein Beispiel, wo wir eine 1 erhalten , was anzeigt, dass die Zeichenfolge nicht Übereinstimmung:

SELECT 
  'Sofa' REGEXP '^Br' AS 'REGEXP',
  'Sofa' NOT REGEXP '^Br' AS 'NOT REGEXP';

Ergebnis:

+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      0 |          1 |
+--------+------------+