..


Liens sponsorisés

Expressions régulières dans requêtes MySQL

Article écrit par Max Bossi

Le moteur interne de MySQL a nativement - en plus des opérateurs communs de l'égalité, l'inégalité et la similitude (comme) - un opérateur très utile: l'objet RegExp opérateur.
Comme son nom l'indique, l'opérateur REGEXP exploite la puissance des expressions régulières pour effectuer des recherches complexes au sein de notre base de données MySQL. La syntaxe est simple:






 SELECT field_name







 FROM table_name







 OÙ field_name REGEXP expression;

 
Suivons un tableau récapitulatif simple des personnages principaux et la syntaxe spéciale utilisée dans l'expression de la comparaison:

^ Début de la chaîne
$ Fin de la chaîne
. Tout caractère
[...] N'importe lequel des caractères entre les crochets
[^...] Tout caractère sauf ceux entre crochets
| Chaînes séparées de caractères ou de leurs alternatives
* Zéro ou plusieurs répétitions du caractère précédent ou de la chaîne
+ Une ou plusieurs répétitions du caractère précédent ou de la chaîne
{N} Caractère "N" ou la répétition de la chaîne précédente
{Min, max} Répète le caractère précédent ou d'une chaîne à un certain nombre de fois entre un minimum et un maximum

Nous faisons quelques exemples pratiques qui, comme d'habitude, vaut mille mots ...
Pour simplifier, nous nous référerons à une base hypothétique calendrier contenant les noms de nos amis.

1) Nous trouvons tous les noms commençant par "m"

 



 SELECT nom FROM calendrier WHERE nom REGEXP '^ m';

 
Notre requête va renvoyer, par exemple:
  • M ara
  • M ars
  • M ary
  • Ilena M
2) Nous trouvons tous les noms qui se terminent par "ou"
 



 SELECT nom FROM calendrier WHERE nom REGEXP 'ou $';

 
Notre requête va renvoyer, par exemple:
  • Ou Philippe
  • Lumières ou de
  • Marc et
  • Mers ou
  • Paul ou
3) Nous trouvons tous les noms commençant par "m" et finalement "ou"
 



 SELECT nom FROM calendrier WHERE nom REGEXP "^ m + o $ ';

 
Notre requête va renvoyer, par exemple:
  • M arc ou
  • M ari ou
4) Nous trouvons tous les noms qui contiennent la lettre "r"
 



 SELECT nom FROM calendrier où «r» nom REGEXP;

 
Notre requête va renvoyer, par exemple:
  • R CLA
  • Mais r
  • Mais r co
  • Mais je r
5) Nous trouvons tous les noms qui contiennent des groupes de lettres ", mais" ou "I"
 



 SELECT nom FROM calendrier WHERE nom REGEXP 'MA | ra';

 
Notre requête va renvoyer, par exemple:
  • J'ai luc
  • Mais ra
  • Mais rco
  • Mais je r
6) Nous trouvons tous les noms qui ne contiennent pas les lettres «m» et «a»
 



 SELECT nom FROM calendrier WHERE nom REGEXP '[^ ma]';

 
Notre requête va renvoyer, par exemple:
  • Philippe
  • Lucio
Je laisse au lecteur à tester davantage l'opérateur potentiel de REGEXP, puisque les zones possibles d'utilisation sont si nombreux et il est difficile de résumer en un court article que cela est censé être.

Dans la même catégorie ...
E-Learning
MS Access (Avancé) MS Access (Avancé)
Apprenez à créer et gérer des bases de données rapidement et facilement. A partir de 29 €.
MySQL (Cours) MySQL (Cours)
Gestion des bases de données open-source. A partir de 39 €.
SQL et bases de données (cours) SQL et bases de données (cours)
Créer et gérer des bases de données relationnelles. A partir de 39 €.
Liens sponsorisés