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