MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona NOT REGEXP in MariaDB

In MariaDB, il NOT REGEXP operatore è una negazione di REGEXP operatore.

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

Ecco un esempio di come usarlo in un SELECT dichiarazione:

SELECT 'Bread' NOT REGEXP '^Br';

Risultato:

+--------------------------+
| 'Bread' NOT REGEXP '^Br' |
+--------------------------+
|                        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');

Risultato:

+----------------------------+
| NOT ('Bread' REGEXP '^Br') |
+----------------------------+
|                          0 |
+----------------------------+

Rispetto a REGEXP

In questo esempio 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 |
+--------+------------+

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 |
+--------+------------+