Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Mot-clé MySQL REGEXP

Le mot-clé REGEXP de MySQL est utilisé pour la recherche de motifs à l'aide d'expressions régulières. Il vous permet de rechercher des motifs complexes dans des chaînes de caractères au sein des tableaux de votre base de données.

Utilisation

Le mot-clé REGEXP est généralement utilisé dans la clause WHERE pour filtrer les enregistrements en fonction de la correspondance d'une chaîne de caractères avec un modèle d'expression régulière spécifié. Il s'agit d'un outil puissant pour la recherche de texte et la reconnaissance des formes. Les expressions régulières de MySQL sont basées sur le standard POSIX et peuvent différer légèrement des autres implémentations de regex.

SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern';

Dans cette syntaxe, REGEXP 'pattern' vérifie si column_name correspond à l'expression régulière donnée. Notez que REGEXP est insensible à la casse par défaut. Pour effectuer une recherche sensible à la casse, utilisez le mot-clé BINARY:

SELECT column_name
FROM table_name
WHERE BINARY column_name REGEXP 'pattern';

Exemples

1. Correspondance de motifs de base

SELECT * 
FROM products 
WHERE product_name REGEXP '^C';

Cet exemple sélectionne tous les tableaux du tableau productsproduct_name commence par la lettre "C". Le modèle '^C' utilise ^ pour indiquer le début de la chaîne, ce qui garantit que seuls les noms commençant par "C" sont pris en compte.

2. Correspondance entre plusieurs motifs

SELECT email 
FROM users 
WHERE email REGEXP 'gmail|yahoo';

Ici, la requête extrait du tableau users les courriers électroniques contenant "gmail" ou "yahoo".

3. Correspondance de motifs complexes

SELECT phone_number 
FROM contacts 
WHERE phone_number REGEXP '^[0-9]{3}-[0-9]{3}-[0-9]{4}$';

Cet exemple sélectionne les numéros de téléphone de contacts qui correspondent au modèle des numéros de téléphone nord-américains au format XXX-XXX-XXXX.

Conseils et bonnes pratiques

  • Optimiser les performances. Les expressions régulières peuvent être gourmandes en ressources ; utilisez-les judicieusement et envisagez d'indexer les colonnes lorsque c'est possible. Utilisez EXPLAIN pour analyser les performances des requêtes lors de l'utilisation d'expressions régulières.
  • Testez les modèles séparément. Testez vos expressions régulières dans un environnement distinct pour vous assurer qu'elles fonctionnent comme prévu avant de les appliquer à vos requêtes.
  • Utilisez les ancres à bon escient. Utilisez ^ et $ pour indiquer respectivement le début et la fin d'une chaîne de caractères, afin d'obtenir une correspondance plus précise.
  • Échapper aux caractères spéciaux. Si votre motif comprend des caractères spéciaux, veillez à ce qu'ils soient correctement échappés afin d'éviter les correspondances inattendues. Par exemple, pour faire correspondre un point littéral, utilisez \.:
  • WHERE column_name REGEXP '\\.'
  • Note de compatibilité. Bien que MySQL prenne en charge les expressions régulières de base, il ne prend pas en charge les fonctionnalités telles que les lookaheads et les lookbehinds.
  • Différence par rapport à LIKE. Contrairement à REGEXP, qui prend en charge des motifs complexes, LIKE est utilisé pour des motifs plus simples avec les caractères génériques % et _. Utilisez LIKE pour les modèles simples et REGEXP pour les exigences plus complexes.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement