Une capacité très intéressante et puissante dans MySQL et d'autres bases de données est la possibilité d'incorporer la syntaxe d'expression régulière lors de la sélection de données. Le support d’expression régulière dans MySQL est très étendu. Cette recette examine l'utilisation d'expressions régulières dans MySQL et répertorie les métacaractères d'expression régulière pris en charge.
La syntaxe de base pour utiliser des expressions régulières dans une requête MySQL est la suivante:
SÉLECTIONNER quelque chose de la table WHERE colonne REGEXP 'regexp'
Par exemple, pour sélectionner toutes les colonnes des événements de la table dont les valeurs dans l'id de la colonne se terminent par 5587, utilisez:
SELECT * FROM événements WHERE id REGEXP '5587 $'
Un exemple plus élaboré sélectionne toutes les colonnes des revues de table où les valeurs dans la description de colonne contiennent le mot excellent:
SELECT * FROM commentaires WHERE description REGEXP '[[::]]'
MySQL autorise les métacaractères d'expression régulière suivants:
. correspondre à n'importe quel personnage
? correspondre à zéro ou un
* correspond à zéro ou plus
+ correspondre à un ou plusieurs
{n} match n fois
{m, n} correspond m à n fois
{n,} correspond au moins n fois
^ début de ligne
$ fin de ligne
[[::]] correspond à la fin des mots
[: class:] correspond à une classe de personnage
c'est-à-dire [: alpha:] pour les lettres
[: espace:] pour les espaces
[: punct:] pour la ponctuation
[: upper:] pour les lettres majuscules
[abc] correspond à l'un des caractères inclus
[^ xyz] correspond à tout caractère non inclus
| sépare les alternatives
MySQL interprète une barre oblique inversée (\) comme un caractère d'échappement. Pour utiliser une barre oblique inverse dans une expression régulière, vous devez l'échapper avec une autre barre oblique inverse (\).