Palabra clave REGEXP de MySQL
La palabra clave REGEXP
en MySQL se utiliza para la concordancia de patrones mediante expresiones regulares. Te permite buscar patrones complejos en cadenas dentro de las tablas de tu base de datos.
Utilización
La palabra clave REGEXP
se suele utilizar en la cláusula WHERE
para filtrar registros en función de si una cadena coincide con un patrón de expresión regular especificado. Es una potente herramienta para la búsqueda de texto y el reconocimiento de patrones. Las expresiones regulares de MySQL se basan en el estándar POSIX y pueden diferir ligeramente de otras implementaciones de expresiones regulares.
SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern';
En esta sintaxis, REGEXP 'pattern'
comprueba si column_name
coincide con el patrón de expresión regular dado. Ten en cuenta que REGEXP
no distingue entre mayúsculas y minúsculas por defecto. Para realizar una coincidencia que distinga entre mayúsculas y minúsculas, utiliza la palabra clave BINARY
:
SELECT column_name
FROM table_name
WHERE BINARY column_name REGEXP 'pattern';
Ejemplos
1. Concordancia básica de patrones
SELECT *
FROM products
WHERE product_name REGEXP '^C';
Este ejemplo selecciona todas las filas de la tabla products
en las que product_name
empiece por la letra "C". El patrón '^C'
utiliza ^
para indicar el inicio de la cadena, garantizando que sólo coincidan los nombres que empiecen por "C".
2. Coincidencia de varios patrones
SELECT email
FROM users
WHERE email REGEXP 'gmail|yahoo';
Aquí, la consulta recupera los correos electrónicos de la tabla users
que contengan "gmail" o "yahoo".
3. Concordancia de patrones complejos
SELECT phone_number
FROM contacts
WHERE phone_number REGEXP '^[0-9]{3}-[0-9]{3}-[0-9]{4}$';
Este ejemplo selecciona números de teléfono de contacts
que coincidan con el patrón de números de teléfono de Norteamérica en el formato XXX-XXX-XXXX
.
Consejos y buenas prácticas
- Optimiza el rendimiento. Las expresiones regulares pueden consumir muchos recursos; utilízalas con criterio y considera la posibilidad de indexar columnas siempre que sea posible. Utiliza
EXPLAIN
para analizar el rendimiento de las consultas cuando utilices expresiones regulares. - Prueba los patrones por separado. Prueba tus expresiones regulares en un entorno distinto para asegurarte de que funcionan como esperas antes de aplicarlas a tus consultas.
- Utiliza los anclajes con prudencia. Utiliza
^
y$
para indicar el inicio y el final de una cadena, respectivamente, para una concordancia de patrones más precisa. - Escapa de los caracteres especiales. Si tu patrón incluye caracteres especiales, asegúrate de que se escapan correctamente para evitar coincidencias inesperadas. Por ejemplo, para que coincida con un punto literal, utiliza
\.
:
WHERE column_name REGEXP '\\.'
REGEXP
, que admite patrones complejos, LIKE
se utiliza para la coincidencia de patrones más sencillos con comodines %
y _
. Utiliza LIKE
para patrones sencillos y REGEXP
para requisitos más complejos.