Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona NOT REGEXP in MySQL

In MySQL, NOT REGEXP è una negazione di REGEXP operatore.

In altre parole, se la stringa corrisponde all'espressione regolare fornita, il risultato è 0 , altrimenti è 1 . Questo è il risultato opposto a quello di REGEXP ritornerebbe (quando non è preceduto da NOT ).

Sintassi

La sintassi è questa:

expr NOT REGEXP pat

Dove expr è la stringa di input e pat è l'espressione regolare per la quale stai testando la stringa.

È l'equivalente di fare quanto segue:

NOT (expr REGEXP pat)

Esempio 1 – Utilizzo di base

Ecco un esempio di come usarlo in un SELECT dichiarazione:

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

Risultato:

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

Qui, il modello è abbinato se la stringa di input inizia con Br . Lo fa, ma perché usiamo NOT REGEXP , otteniamo un risultato negativo (0 ).

L'affermazione di cui sopra equivale a fare questo:

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

Risultato:

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

Esempio 2 – Rispetto a REGEXP

Per chiarire, qui confrontiamo i risultati di REGEXP e NOT REGEXP :

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

Risultato:

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

Esempio 3:un risultato positivo

Gli esempi precedenti hanno prodotto 0 per NOT REGEXP , perché la stringa fatto corrispondono effettivamente al modello. Ecco un esempio in cui otteniamo un 1 , che indica che la stringa non corrispondenza:

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

Risultato:

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