Expressions régulières avec MySQL

Petite trouvaille du vendredi: Exécuter des requêtes MySQL pleine d’expressions régulières. Cette après midi, en faisant un petit tour dans la base de données des inscrits à la newsletter de CBC qui avait bien besoin d’un clean up afin de supprimer les adresses e-mails invalides.

Du coup, je cherchais un moyen de supprimer les adresses mails mal formatées qu’on trimbale, et par la même occasion, récupérer seulement les adresses mails bien formatées lors de l’envoi de la newsletter, en attendant que l’on fasse un beau remodeling du site actuel.

Du coup, je m’suis demandé tout bêtement, si MySQL prenait en compte les expressions régulières, ce qui m’aurai facilité le travail. Et bien sachez le, c’est carrément possible (youpi!) et super simple à mettre en oeuvre en plus. Voilà comment :

Dans un SELECT

Utile si vous voulez récupérer tous les champs validant l’expression régulière

SELECT 'fofo' REGEXP '^fo' FROM table;

Dans une clause WHERE

En fait, ça ne change pas grand chose

SELECT champ FROM table WHERE champ REGEXP '^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$' AND champ2 REGEXP '(chouette|cool|super)'

Alors, heureux? 


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.