Magazine

Comment utiliser les expressions régulières dans MySQL ? (regex, regexp)

Publié le 19 janvier 2008 par Mr32

Le principal avantage est de pouvoir construire des requêtes beaucoup plus complexes qu'un simple LIKE en exploitant toute la puissance des expressions régulières.

Quelques exemples basiques

SELECT * FROM clients WHERE nom LIKE 't%' ;
SELECT * FROM clients WHERE nom REGEXP '^t' ;

SELECT * FROM clients WHERE nom LIKE '%d' ;
SELECT * FROM clients WHERE nom REGEXP "d$";

Exemple plus difficile à réaliser avec un simple LIKE

SELECT * FROM clients WHERE nom REGEXP '^.{4}$' ;

Autre exemple : isoler un mot précis

SELECT * FROM textes WHERE contenu REGEXP '[^a-z]bonjour[^a-z]' ;

Si vous désirez que votre requête soit sensible à la casse, vous devez utiliser la commande REGEXP BINARY.

SELECT * FROM textes WHERE contenu REGEXP BINARY '[^a-zA-Z]Bonjour[^a-zA-Z]' ;

Attention: Au niveau sécurité, au delà de la protection contre les injections SQL, n'oubliez pas aussi de protéger vos requêtes contre les injections d'expressions régulières par rapport aux caractères spéciaux comme les ".", "*", "+", "?", etc...



Retour à La Une de Logo Paperblog

A propos de l’auteur


Mr32 12 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog