..


Enllaços patrocinats

Expressions regulars en MySQL consulta

Article escrit per Max Bossi

El motor intern de MySQL de forma nativa té - a més dels operadors comuns de la igualtat, la desigualtat i la similitud (COM) - un operador molt útil: l'operador regexp.
Com el seu nom indica, l'operador regexp utilitza el poder de les expressions regulars per fer cerques complexes dins de la nostra base de dades MySQL. La sintaxi és simple:






 SELECCIONAR nombre_campo







 FROM table_name







 ON nombre_campo regexp expressió;

 
Seguirem una taula de resum simple dels personatges principals i la sintaxi especial que s'usa en l'expressió de la comparació:

^ Principi de la cadena
$ Final de la cadena
. Qualsevol caràcter
[...] Qualsevol dels personatges dels suports
[^...] Qualsevol caràcter excepte els claudàtors
| Caràcters independents o cadenes en les seves alternatives
* Zero o més repeticions del caràcter anterior o la cadena
+ Una o més repeticions del caràcter anterior o la cadena
{N} "N" repeticions del caràcter anterior o la cadena
{Min, màx} Repeteix el caràcter anterior o cadena en un nombre de vegades entre un mínim i un màxim

Fem alguns exemples pràctics que, com sempre, val més que mil paraules ...
Per simplificar ens referirem a una base de dades hipotètics que conté el calendari dels noms dels nostres amics.

1) Ens trobem tots els noms que comencen per "m"

 



 SELECT nom de l'agenda WHERE nom regexp '^ m';

 
La nostra consulta tornarà, per exemple:
  • M ara
  • M arc
  • M ary
  • Ilene M
2) Ens trobem tots els noms acabats en "o"
 



 SELECT nom de l'agenda WHERE nom regexp 'o $';

 
La nostra consulta tornarà, per exemple:
  • Felip o
  • Llums o
  • Marc i
  • Siguis o
  • Pau o
3) Ens trobem tots els noms que comencen per "m" i amb el temps "o"
 



 SELECT nom de l'agenda WHERE nom regexp '^ m + o $';

 
La nostra consulta tornarà, per exemple:
  • M arc o
  • M ari o
4) Ens trobem tots els noms que contenen la lletra "r"
 



 SELECT nom de l'agenda WHERE nom regexp 'r';

 
La nostra consulta tornarà, per exemple:
  • Cla r
  • Però r
  • Però co r
  • Però r
5) Ens trobem tots els noms que continguin els grups de lletres ", però" o "I"
 



 SELECT nom de l'agenda WHERE nom regexp 'ma | ra';

 
La nostra consulta tornarà, per exemple:
  • Luc I
  • No obstant això, ra
  • Però RCO
  • Però r
6) Ens trobem tots els noms que no contenen les lletres "m" i "a"
 



 SELECT nom de l'agenda WHERE nom regexp '[^ però]';

 
La nostra consulta tornarà, per exemple:
  • Felip
  • Lucio
Deixo al lector per posar a prova encara més el potencial operador regexp, des dels àmbits d'aplicació són moltes i és difícil de resumir en un breu article com aquest està destinat a ser.

A la mateixa categoria ...
E-Learning
MS Access (Curs) MS Access (Curs)
Aprendre a crear i gestionar bases de dades fàcil i ràpidament. A partir de 29 €.
MySQL (Curs) MySQL (Curs)
Gestió de base de dades de codi obert. A partir de 39 €.
SQL i bases de dades (curs) SQL i bases de dades (curs)
Creació i gestió de bases de dades relacionals. A partir de 39 €.
Enllaços patrocinats