MariaDB: condición RLIKE

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MariaDB: condición RLIKE

Este tutorial de MariaDB explica cómo usar MariaDB Condiciones RLIKE (realiza coincidencias de expresiones regulares) con sintaxis y ejemplos.

* No debe confundirse con las condiciones LIKE que realizan coincidencias de patrones simples.

describir

Las condiciones RLIKE de MariaDB le permiten realizar coincidencias de expresiones regulares en la cláusula WHERE de una declaración SELECT, INSERT, UPDATE o DELETE.

sintaxis

La sintaxis de las condiciones RLIKE en MariaDB es:

expression RLIKE pattern

parámetro o parámetro

Expresión Una expresión de carácter, como una columna o un campo.patrón

Información de coincidencia de expresiones regulares. Puede ser una combinación de lo siguiente:

valor describir
^ Coincide con el principio de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincide con el comienzo de una línea en cualquier parte de la expresión.
PS Coincide con el final de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincidirá con el final de la línea en cualquier parte de la expresión.
* Coincide con cero o más ocurrencias.
+ Coincide con una o más coincidencias.
? Partido cero o una vez.
. Coincide con cualquier carácter excepto NULL.
| Use como “O” para especificar múltiples alternativas.
[ ] Se utiliza para especificar una lista de coincidencias en la que intenta hacer coincidir cualquiera de los caracteres de la lista.
[^ ] Se utiliza para especificar una lista no coincidente en la que está intentando hacer coincidir cualquier carácter excepto los de la lista.
( ) Se utiliza para agrupar expresiones en subexpresiones.
{arroz} Coincidir m veces.
{arroz,} Coincide al menos m veces.
{Minnesota} Coincide al menos m veces, pero no más de n veces.
norte n es un número entre 1 y 9. Coincide con la n-ésima subexpresión encontrada en ( ) antes de que se encuentre n.
[..] Coincide con un elemento de intercalación que puede tener más de un carácter.
[::] Coincide con las clases de personajes.
[==] Igualar clases de equivalencia.
D Coincide con un carácter numérico.
D Coincide con caracteres no numéricos.
w Coincide con un carácter de palabra.
W Coincide con caracteres que no son palabras.
s Coincide con un carácter de espacio en blanco.
S Coincide con caracteres que no son espacios en blanco.
*? Coincide con cero o más ocurrencias del patrón anterior.
+? Coincide con una o más apariciones del patrón anterior.
?? Coincide con cero o una aparición del patrón anterior.
{norte}? Coincide con el patrón anterior n veces.
{norte,}? Coincide con el patrón anterior al menos n veces.
{Nuevo Méjico}? Haga coincidir el patrón anterior al menos n veces, pero no más de m veces.

notas

  • Las condiciones RLIKE realizan coincidencias que no distinguen entre mayúsculas y minúsculas, a menos que se utilicen con cadenas binarias.
  • Esta página se aplica a MariaDB 10.0.5 y versiones posteriores, que utilizan la biblioteca de expresiones regulares PCRE. Antes de MariaDB 10.0.5, las condiciones RLIKE usaban una biblioteca de expresiones regulares compatible con POSIX 1003.2.
  • Consulte también la condición LIKE de MariaDB.

aplicar para

Las condiciones RLIKE están disponibles en las siguientes versiones de MariaDB:

  • MariaDB 10.0.5+

Ejemplo: coincidencia de múltiples alternativas

Primero veamos cómo usar | Patrones en condiciones RLIKE en MariaDB.

Por ejemplo:

SELECT product_name
FROM products
WHERE product_name RLIKE 'P(a|e|i)n';

Este ejemplo de RLIKE devolverá todos los productos cuyo product_name sea Pan, Pen o Pin.Esta | El patrón nos dice que busquemos la letra “a”, “e” o “i”.

Ejemplo: coincidencia al principio

A continuación, usemos la condición RLIKE para hacer coincidir el comienzo de la cadena.

Por ejemplo:

SELECT product_id, product_name
FROM products
WHERE product_name RLIKE '^P';

Este ejemplo de RLIKE utiliza ^ Coincide con un patrón al principio de la cadena. Devolverá todos los valores de product_id y product_name cuyo product_name comience con “P”.

Dado que la condición RLIKE no distingue entre mayúsculas y minúsculas (a menos que sea una cadena binaria), es equivalente a lo siguiente:

SELECT product_id, product_name
FROM products
WHERE product_name RLIKE '^p';

Ambas consultas devolverán los mismos resultados.

Ejemplo: final del partido

A continuación, usemos la condición RLIKE para hacer coincidir el final de la cadena.

Por ejemplo:

SELECT *
FROM products
WHERE product_name RLIKE 'n$';

Este ejemplo de RLIKE utiliza $ Coincide con el patrón al final de la cadena. Devolverá todos los productos cuyo product_name termine en “n”.

Ejemplo: lista de discrepancias

A continuación, usemos la condición RLIKE para definir una lista que no coincide. Esto significa que está tratando de hacer coincidir cualquier carácter excepto los caracteres de la lista.

Por ejemplo:

SELECT *
FROM products
WHERE product_name RLIKE 'P[^a]n';

Este ejemplo utiliza [^] patrón para que coincida con cualquier carácter excepto los enumerados. Devolverá todos los registros en la tabla de productos donde el primer carácter de product_name es “P”, el segundo carácter no es “a” y el tercer carácter es “n”. Esto incluiría valores como “Pen”, “Pin”, “Pon” o “Pun”, pero excluiría el valor “Pan” del conjunto de resultados.

Puede complicar aún más este ejemplo agregando varios caracteres no coincidentes.

Por ejemplo:

SELECT *
FROM products
WHERE product_name RLIKE 'P[^ai]n';

Este ejemplo devuelve todos los registros en la tabla de productos donde el primer carácter de product_name es “P”, el segundo carácter no es “a” ni “i” y el tercer carácter es “n”. Esto incluiría valores como “Pen”, “Pon” o “Pun”, pero excluiría los valores “Pan” y “Pin” del conjunto de resultados.

Ejemplo: clases de caracteres coincidentes

A continuación, veamos cómo usar las condiciones RLIKE para hacer coincidir las clases de caracteres en MariaDB.

Puede usar las siguientes clases de caracteres con condiciones RLIKE en MariaDB:

clase de personaje describir
aluminio caracteres alfanuméricos
alfa caracteres alfabéticos
Blanco espacios en blanco
control personajes de control
número número
gráficos caracteres gráficos
reducir caracteres en minúsculas
Impresión carácter gráfico o espacial
punto Puntuación
espacio Caracteres como retorno de carro, avance de línea, espacio y tabulación
superior letras mayúsculas
número número hexadecimal

Veamos un ejemplo de cómo usar condiciones RLIKE para hacer coincidir las clases de caracteres.

Por ejemplo:

SELECT *
FROM contacts
WHERE address RLIKE '123[:alnum:]*';

En este ejemplo, la condición RLIKE devolverá todos los registros en la tabla de contactos con direcciones que comienzan con 123, seguidas de caracteres alfanuméricos.

Ejemplo: caracteres de escape

El último ejemplo explicará cómo escapar de los caracteres especiales cuando se usan condiciones RLIKE en MariaDB.Para escapar de caracteres especiales usando condiciones RLIKE, debe preceder el carácter especial con dos barras invertidas \.

Por ejemplo:

SELECT *
FROM products
WHERE product_name RLIKE '\(';

En este ejemplo escapamos ( carácter, por lo que la condición RLIKE devolverá todos los registros en la tabla de productos que contienen product_name ( Características.