..


Gesponsorde links

Reguliere expressies in MySQL query

Artikel geschreven door Max Bossi

De interne motor van MySQL is inheems - in aanvulling op de gemeenschappelijke exploitanten van gelijkheid, ongelijkheid en gelijkenis (LIKE) - een zeer nuttige operator: REGEXP operator.
Zoals de naam al doet vermoeden, de REGEXP operator maakt gebruik van de kracht van reguliere expressies om complexe zoekopdrachten uit te voeren binnen onze MySQL database. De syntax is eenvoudig:






 SELECT field_name







 FROM tabelnaam







 WAAR field_name REGEXP uitdrukking;

 
Laten we een eenvoudig overzicht van de belangrijkste personages en de speciale syntax gebruikt in de expressie van de vergelijking te volgen:

^ Begin van de tekenreeks
$ Einde van de string
. Elk teken
[...] Elk van de personages in de tussen haakjes
[^...] Elk teken behalve die tussen vierkante haakjes
| Afzonderlijke reeksen van tekens of hun alternatieven
* Nul of meer herhalingen van de vorige tekens of de string
+ Een of meer herhalingen van de vorige tekens of de string
{N} "N" karakter of de herhaling van de vorige reeks
{Min, max} Herhaalt de vorige teken of string om een ​​aantal keren tussen een minimum en een maximum

We maken een aantal praktische voorbeelden die, zoals gewoonlijk, zegt meer dan duizend woorden ...
Voor de eenvoud zullen we verwijzen naar een hypothetische kalender database met de namen van onze vrienden.

1) We vinden alle namen die beginnen met "m"

 



 SELECT naam FROM kalender WHERE naam REGEXP '^ m';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • M ara
  • M boog
  • M Ary
  • Ilena M
2) We vinden alle namen die eindigen op "of"
 



 SELECT naam FROM kalender WHERE naam REGEXP 'of $';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • Of Philip
  • Lichten of
  • Marc en
  • Zee of
  • Paul of
3) We vinden alle namen die beginnen met "m" en uiteindelijk "of"
 



 SELECT naam FROM kalender WHERE naam REGEXP '^ m + o $';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • M arc of
  • M ari of
4) We vinden alle namen die de letter "r" bevatten
 



 SELECT naam FROM kalender WHERE naam REGEXP 'r';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • R cla
  • Maar r
  • Maar r co
  • Maar ik r
5) We vinden alle namen dat groepen van letters bevatten ", maar" of "I"
 



 SELECT naam FROM kalender WHERE naam REGEXP 'ma | ra';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • Ik luc
  • Maar ra
  • Maar RCO
  • Maar ik r
6) We vinden alle namen die geen van de letters "m" en "a"
 



 SELECT naam FROM kalender WHERE naam REGEXP '[^ ma]';

 
Onze vraag zal ruil voor bijvoorbeeld:
  • Philip
  • Lucio
Ik laat de lezer om verder te testen de mogelijkheden REGEXP operator, omdat de mogelijke gebieden van het gebruik zijn zo veel en het is moeilijk samen te vatten in een kort artikel als dit is bedoeld om te worden.

In dezelfde categorie ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Leer hoe het maken en beheren databases snel en gemakkelijk. Vanaf 29 €.
MySQL (Cursus) MySQL (Cursus)
Beheer van de open source database. Van 39 €.
SQL en Database (Cursus) SQL en Database (Cursus)
Maken en beheren van relationele databases. Van 39 €.
Gesponsorde links