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

Cómo funciona NOT RLIKE en MariaDB

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

En otras palabras, cada vez que RLIKE el operador devolvería 1 , NOT RLIKE devolverá 0 .

Sintaxis

La sintaxis es así:

expr NOT RLIKE 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 RLIKE pat)

Ejemplo

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

SELECT 'Coffee' NOT RLIKE '^C.*e$';

Resultado:

+-----------------------------+
| 'Coffee' NOT RLIKE '^C.*e$' |
+-----------------------------+
|                           0 |
+-----------------------------+

Aquí, el patrón coincide si la cadena de entrada comienza con C y termina con e . Sí, pero porque usamos NOT RLIKE , obtenemos un resultado negativo (0 ).

La declaración anterior es equivalente a hacer esto:

SELECT NOT ('Coffee' RLIKE '^C.*e$');

Resultado:

+-------------------------------+
| NOT ('Coffee' RLIKE '^C.*e$') |
+-------------------------------+
|                             0 |
+-------------------------------+

Comparado con RLIKE

Aquí comparamos los resultados de RLIKE con NOT RLIKE :

SELECT 
  'Coffee' RLIKE '^C.*e$' AS "RLIKE",
  'Coffee' NOT RLIKE '^C.*e$' AS "NOT RLIKE";

Resultado:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     1 |         0 |
+-------+-----------+

Un resultado positivo

Los ejemplos anteriores resultaron en 0 para NOT RLIKE , 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 
  'Funny' RLIKE '^C.*e$' AS "RLIKE",
  'Funny' NOT RLIKE '^C.*e$' AS "NOT RLIKE";

Resultado:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     0 |         1 |
+-------+-----------+

Alternativas

MariaDB incluye muchas funciones y operadores que esencialmente hacen lo mismo, y esto también se aplica a NOT RLIKE .

  1. RLIKE es sinónimo de REGEXP operador.
  2. NOT RLIKE es el equivalente de NOT REGEXP .
  3. RLIKE y REGEXP se puede negar simplemente usando el NOT operador lógico.

Por lo tanto, todos los siguientes son equivalentes:

expr NOT RLIKE pat
expr NOT REGEXP pat
NOT (expr RLIKE pat)
NOT (expr REGEXP pat)

Y aquí hay un ejemplo para demostrarlo:

SELECT 
  'Car' NOT RLIKE '^C' AS "Result 1",
  'Car' NOT REGEXP '^C' AS "Result 2",
  NOT ('Car' RLIKE '^C') AS "Result 3",
  NOT ('Car' REGEXP '^C') AS "Result 4";

Resultado:

+----------+----------+----------+----------+
| Result 1 | Result 2 | Result 3 | Result 4 |
+----------+----------+----------+----------+
|        0 |        0 |        0 |        0 |
+----------+----------+----------+----------+