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';Con la tecnología de
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
WHEREBINARY column_name REGEXP'pattern';Con la tecnología de
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".
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}$';Con la tecnología de
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 \.:
Nota de compatibilidad. Aunque MySQL admite expresiones regulares básicas, no admite funciones como lookaheads y lookbehinds.
Diferencia de LIKE. A diferencia de 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.
La palabra clave
REGEXPen 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
REGEXPse suele utilizar en la cláusulaWHEREpara 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.En esta sintaxis,
REGEXP 'pattern'comprueba sicolumn_namecoincide con el patrón de expresión regular dado. Ten en cuenta queREGEXPno distingue entre mayúsculas y minúsculas por defecto. Para realizar una coincidencia que distinga entre mayúsculas y minúsculas, utiliza la palabra claveBINARY:Ejemplos
1. Concordancia básica de patrones
Este ejemplo selecciona todas las filas de la tabla
productsen las queproduct_nameempiece 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
Aquí, la consulta recupera los correos electrónicos de la tabla
usersque contengan "gmail" o "yahoo".3. Concordancia de patrones complejos
Este ejemplo selecciona números de teléfono de
contactsque coincidan con el patrón de números de teléfono de Norteamérica en el formatoXXX-XXX-XXXX.Consejos y buenas prácticas
EXPLAINpara analizar el rendimiento de las consultas cuando utilices expresiones regulares.^y$para indicar el inicio y el final de una cadena, respectivamente, para una concordancia de patrones más precisa.\.:REGEXP, que admite patrones complejos,LIKEse utiliza para la coincidencia de patrones más sencillos con comodines%y_. UtilizaLIKEpara patrones sencillos yREGEXPpara requisitos más complejos.