sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona NOT REGEXP en MariaDB

En MariaDB, NOT REGEXP el operador es una negación de REGEXP operador.

Si la cadena coincide con la expresión regular proporcionada, el resultado es 0 , de lo contrario es 1 . Este es el resultado opuesto a lo que REGEXP regresaría (cuando no tiene el prefijo NOT) ).

Sintaxis

La sintaxis es así:

expr NOT REGEXP pat

Donde expr es la cadena de entrada y pat es la expresión regular para la que está probando la cadena.

Es el equivalente a hacer lo siguiente:

NOT (expr REGEXP pat)

Ejemplo

Aquí hay un ejemplo de cómo usar esto en un SELECT declaración:

SELECT 'Bread' NOT REGEXP '^Br';

Resultado:

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

Aquí, el patrón coincide si la cadena de entrada comienza con Br . Lo hace, pero porque usamos NOT REGEXP , obtenemos un resultado negativo (0 ).

La declaración anterior es equivalente a hacer esto:

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

Resultado:

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

Comparado con REGEXP

En este ejemplo comparamos los resultados de REGEXP y NOT REGEXP :

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

Resultado:

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

Un resultado positivo

Los ejemplos anteriores resultaron en 0 para NOT REGEXP , porque la cadena hizo en realidad coincide con el patrón. Aquí hay un ejemplo donde obtenemos un 1 , lo que indica que la cadena no coincidencia:

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

Resultado:

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