..


Link-uri sponsorizate

Expresiile regulate în MySQL interogare

Articol scris de Max Bossi

Motorul intern de MySQL are nativ - în plus faţă de operatorii comune de egalitate, inegalitate şi similitudine (CA) - un operator foarte util: regexp operatorul.
După cum sugerează şi numele, operatorul regexp foloseste puterea expresiilor regulate pentru a efectua căutări complexe în baza noastră de date MySQL. Sintaxa este simplă:






 SELECT field_name







 DIN table_name







 UNDE field_name regexp exprimare;

 
Să urmeze un tabel rezumat simplu dintre personajele principale şi sintaxă speciale folosite în expresia de comparaţie:

^ Început de şirul
$ Sfârşitul şirului
. Orice caracter
[...] Oricare dintre personajele din paranteze
[^...] Orice caracter cu excepţia celor în paranteze pătrate
| Siruri de caractere separate, sau alternativele lor
* Zero sau mai multe repetari ale caracterului anterior sau şirul de
+ Una sau mai multe repetari ale caracterului anterior sau şirul de
{N} "N" caracterul sau repetarea şirului precedent
{Min, max} Repetă caracterul precedent sau şir la un număr de ori între un minim şi un maxim

Facem câteva exemple practice care, ca de obicei, este în valoare de o mie de cuvinte ...
Pentru simplificare ne vom referi la o bază de date calendar ipotetic care conţin numele prietenilor noştri.

1) Am găsi toate numele care încep cu "m"

 



 Selectaţi numele din agendă WHERE nume regexp "^ m";

 
Interogarea nostru va reveni, de exemplu:
  • M ara
  • M arc
  • M Ary
  • Ilena M
2) Am găsi toate numele care se termină cu "sau"
 



 Selectaţi numele din agendă WHERE nume regexp "sau $ ';

 
Interogarea nostru va reveni, de exemplu:
  • Sau Filip
  • Lumini sau
  • Marc şi
  • Maritimă sau
  • Pavel sau
3) Am găsi toate numele care încep cu "m" şi în cele din urmă "sau"
 



 Selectaţi numele din agendă WHERE nume regexp "^ m + o $ ';

 
Interogarea nostru va reveni, de exemplu:
  • M arc sau
  • M Ari sau
4) Am găsi toate numele care conţin litera "r"
 



 Selectaţi numele din agendă WHERE nume regexp "r";

 
Interogarea nostru va reveni, de exemplu:
  • R CLA
  • Dar r
  • Dar r co
  • Dar am r
5) Am găsi toate numele care conţin grupuri de litere ", ci" sau "I"
 



 Selectaţi numele din agendă WHERE nume regexp doamna | RA ";

 
Interogarea nostru va reveni, de exemplu:
  • I luc
  • Dar ra
  • Dar RCO
  • Dar am r
6) Am găsi toate numele care nu conţin literele "m" şi "a"
 



 Selectaţi numele din agendă WHERE nume regexp "[^ ma]";

 
Interogarea nostru va reveni, de exemplu:
  • Philip
  • Lucio
Las pe cititor pentru a testa în continuare a potenţialului operator de regexp, deoarece posibilele domenii de utilizare sunt atât de multe şi este dificil să rezume într-un articol scurt în care acest lucru este menit să fie.

În aceeaşi categorie ...
E-Learning
MS Access (Avansat) MS Access (Avansat)
Aflaţi cum să creaţi şi să gestionaţi baze de date rapid şi uşor. Incepand de la 29 €.
MySQL (Curs) MySQL (Curs)
De gestionare a bazei de date open-source. De la 39 €.
SQL si baze de date (Curs) SQL si baze de date (Curs)
Crearea şi gestionarea bazelor de date relaţionale. De la 39 €.
Link-uri sponsorizate