..


Enlaces patrocinados

Expresiones regulares en MySQL consulta

Artículo escrito por Max Bossi

El motor interno de MySQL nativos -, además de los operadores común de la igualdad, la desigualdad y la similitud (COMO) - un operador muy útil: operador REGEXP.
Como su nombre indica, el operador REGEXP aprovecha la potencia de las expresiones regulares para realizar búsquedas complejas dentro de nuestra base de datos MySQL. La sintaxis es simple:






 SELECCIONAR nombre_campo







 FROM table_name







 DONDE nombre_campo REGEXP expresión;

 
Vamos a seguir una tabla de resumen sencillo de los personajes principales y la sintaxis especial que se usa en la expresión de la comparación:

^ Principio de la cadena
$ Final de la cadena
. Cualquier carácter
[...] Cualquiera de los personajes de los soportes
[^...] Cualquier carácter excepto los corchetes
| Cadenas distintas de los personajes o sus alternativas
* Cero o más repeticiones del carácter anterior o la cadena
+ Una o más repeticiones del carácter anterior o la cadena
{N} Carácter "N" o la repetición de la cadena anterior
{Min, max} Repite el carácter anterior o cadena en un número de veces entre un mínimo y un máximo

Hacemos algunos ejemplos prácticos que, como siempre, vale más que mil palabras ...
Para simplificar, nos referiremos a una base de datos de calendario hipotéticos que contiene los nombres de nuestros amigos.

1) Nos encontramos todos los nombres que empiezan por "m"

 



 SELECT nombre de la agenda WHERE nombre REGEXP '^ M';

 
Nuestra consulta va a devolver, por ejemplo:
  • M ara
  • M arco
  • M ario
  • Ilena M
2) Nos encontramos todos los nombres que terminan en "o"
 



 SELECT nombre de la agenda WHERE nombre REGEXP 'o $ ";

 
Nuestra consulta va a devolver, por ejemplo:
  • O Felipe
  • Luces o
  • Marc y
  • Seas o
  • Pablo o
3) Nos encontramos todos los nombres que empiezan por "m" y con el tiempo "o"
 



 SELECT nombre de la agenda WHERE nombre REGEXP '^ m + o $ ";

 
Nuestra consulta va a devolver, por ejemplo:
  • M arco o
  • M ari o
4) Nos encontramos todos los nombres que contienen la letra "r"
 



 SELECT nombre de la agenda WHERE nombre REGEXP 'r';

 
Nuestra consulta va a devolver, por ejemplo:
  • R cla
  • Pero r
  • Pero r co
  • Pero r
5) Nos encontramos todos los nombres que contienen grupos de letras "pero" o "I"
 



 SELECT nombre de la agenda WHERE nombre REGEXP 'ma | ra';

 
Nuestra consulta va a devolver, por ejemplo:
  • Yo luc
  • Sin embargo, ra
  • Pero rco
  • Pero r
6) Nos encontramos todos los nombres que no contienen las letras "m" y "a"
 



 SELECT nombre de la agenda WHERE nombre REGEXP '[^ ma] ";

 
Nuestra consulta va a devolver, por ejemplo:
  • Felipe
  • Lucio
Dejo al lector para poner a prueba aún más el potencial operador REGEXP, ya que los ámbitos de aplicación son muchos y es difícil de resumir en un breve artículo como éste está destinado a ser.

En la misma categoría ...
E-Learning
MS Access (Avanzado) MS Access (Avanzado)
Aprenda a crear y gestionar bases de datos rápida y fácilmente. A partir de 29 €.
MySQL (Curso) MySQL (Curso)
Gestión de base de datos de código abierto. A partir de 39 €.
SQL y bases de datos (Avanzado) SQL y bases de datos (Curso)
Crear y gestionar bases de datos relacionales. A partir de 39 €.
Enlaces patrocinados