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

Cómo funciona el operador RLIKE en MySQL

En MySQL, el RLIKE El operador se utiliza para determinar si una cadena coincide o no con una expresión regular. Es un sinónimo de REGEXP_LIKE() .

Si la cadena coincide con la expresión regular proporcionada, el resultado es 1 , de lo contrario es 0 .

Sintaxis

La sintaxis es así:

expr RLIKE pat

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

Ejemplo

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

SELECT 'Tweet' REGEXP '^Tw.*t$';

Resultado:

+--------------------------+
| 'Tweet' REGEXP '^Tw.*t$' |
+--------------------------+
|                        1 |
+--------------------------+

En este caso, el valor de retorno es 1 lo que significa que la cadena de entrada coincidió con la expresión regular. En particular, especificamos que la cadena de entrada debe comenzar con Tw y terminar con t (esto se debe a que comenzamos el patrón con ^Tw y terminó con t$ ). El . part especifica cualquier carácter, y * especifica que podría ser cero a cualquier número de ese (cualquier) carácter. Entonces .* significa que no puede haber caracteres, un carácter o muchos caracteres entre el inicio y el final.

Esto es lo que sucede si soltamos el * :

SELECT 'Tweet' REGEXP '^Tw.t$';

Resultado:

+-------------------------+
| 'Tweet' REGEXP '^Tw.t$' |
+-------------------------+
|                       0 |
+-------------------------+

El resultado devuelto es 0 lo que significa que no hay coincidencia. Esto se debe a que . especifica sólo una instancia de cualquier carácter. Nuestra cadena de entrada contiene dos instancias.

Aquí hay algunas permutaciones:

SELECT 
  'Twet' REGEXP '^Tw.t$' AS 'Twet',
  'Twit' REGEXP '^Tw.t$' AS 'Twit',
  'Twt' REGEXP '^Tw.t$' AS 'Twt',
  'Tw.t' REGEXP '^Tw.t$' AS 'Tw.t';

Resultado:

+------+------+-----+------+
| Twet | Twit | Twt | Tw.t |
+------+------+-----+------+
|    1 |    1 |   0 |    1 |
+------+------+-----+------+

Más ejemplos

Para obtener más ejemplos, consulte Ejemplos de MySQL REGEXP. Me gusta RLIKE , el REGEXP operador también es sinónimo de REGEXP_LIKE() .