sql >> Base de Datos >  >> RDS >> Mysql

Cómo funciona NO REGEXP en MySQL

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

En otras palabras, 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 1:uso básico

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

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

Resultado:

+--------+
| Result |
+--------+
|      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') AS 'Result';

Resultado:

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

Ejemplo 2 – Comparado con REGEXP

Para que quede claro, aquí 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 |
+--------+------------+

Ejemplo 3: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 |
+--------+------------+