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? 

← Précédent
Suivant →

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. Découvrez comment les données de vos commentaires sont traitées.

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.