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';Propulsé par
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
WHEREBINARY column_name REGEXP'pattern';Propulsé par
Exemples
1. Correspondance de motifs de base
SELECT*FROM products
WHERE product_name REGEXP'^C';Propulsé par
Cet exemple sélectionne tous les tableaux du tableau products où product_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';Propulsé par
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}$';Propulsé par
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 \.:
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.
Le mot-clé
REGEXPde 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é
REGEXPest généralement utilisé dans la clauseWHEREpour 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.Dans cette syntaxe,
REGEXP 'pattern'vérifie sicolumn_namecorrespond à l'expression régulière donnée. Notez queREGEXPest insensible à la casse par défaut. Pour effectuer une recherche sensible à la casse, utilisez le mot-cléBINARY:Exemples
1. Correspondance de motifs de base
Cet exemple sélectionne tous les tableaux du tableau
productsoùproduct_namecommence 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
Ici, la requête extrait du tableau
usersles courriers électroniques contenant "gmail" ou "yahoo".3. Correspondance de motifs complexes
Cet exemple sélectionne les numéros de téléphone de
contactsqui correspondent au modèle des numéros de téléphone nord-américains au formatXXX-XXX-XXXX.Conseils et bonnes pratiques
EXPLAINpour analyser les performances des requêtes lors de l'utilisation d'expressions régulières.^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.\.:REGEXP, qui prend en charge des motifs complexes,LIKEest utilisé pour des motifs plus simples avec les caractères génériques%et_. UtilisezLIKEpour les modèles simples etREGEXPpour les exigences plus complexes.