Maison  >  Article  >  base de données  >  Tutoriel sur l'utilisation d'expressions régulières pour rechercher dans MySQL (1)

Tutoriel sur l'utilisation d'expressions régulières pour rechercher dans MySQL (1)

巴扎黑
巴扎黑original
2017-05-02 18:17:591569parcourir

Cette rubrique apprendra comment utiliser les expressions régulières dans la clause Where de MySQL pour contrôler le filtrage des données.

Une introduction aux expressions régulières

Les exemples de filtrage des deux premiers chapitres permettent de rechercher des données à l'aide d'opérateurs de correspondance, de comparaison et de caractères génériques. Pour un filtrage basique (ou même pour un filtrage pas si basique), cela suffit. Mais à mesure que la complexité des conditions de filtrage augmente, la complexité de la clause Where elle-même augmente également.

C'est là que les expressions régulières deviennent utiles. Les expressions régulières sont des chaînes spéciales (ensembles de caractères) utilisées pour faire correspondre le texte. Si vous souhaitez extraire des numéros de téléphone d'un fichier texte, vous pouvez utiliser des expressions régulières. Si vous devez rechercher tous les fichiers comportant un numéro au milieu de leur nom, vous pouvez utiliser une expression régulière. Si vous souhaitez retrouver tous les mots répétés dans une section de texte, vous pouvez utiliser des expressions régulières. Si vous souhaitez que toutes les URL d'une page soient les véritables liens HTML de ces URL, vous pouvez également utiliser des expressions régulières.

Tous les langages de programmation, éditeurs de texte, systèmes d'exploitation, etc. prennent en charge les expressions régulières. Les programmeurs et les administrateurs réseau s'intéressent depuis longtemps aux expressions régulières en tant qu'élément important de leurs outils techniques.

Les expressions régulières sont créées à l'aide du langage des expressions régulières, un langage spécial utilisé pour effectuer tout le travail qui vient d'être évoqué et plus encore. Comme tout langage, les expressions régulières ont votre syntaxe spéciale et les instructions doivent être apprises.

Puisque les expressions régulières sont si utiles, quelle est la relation entre les expressions régulières et MySQL ? Comme mentionné précédemment, la fonction des expressions régulières est de faire correspondre le texte, en comparant un modèle (expression régulière) avec une chaîne de texte. MySQL fournit un support préliminaire pour les expressions régulières à l'aide de la clause Where, vous permettant de spécifier des expressions régulières pour filtrer les données récupérées par select.

Correspondance de caractères de base à l'aide d'expressions régulières MySQL

Nous commençons par un exemple très simple. L'instruction suivante récupère toutes les lignes où la colonne prod_name contient le texte 1000 :

sélectionnez prod_name parmi les produits où prod_name regexp '1000', triés par prod_name ;

Tutoriel sur lutilisation dexpressions régulières pour rechercher dans MySQL (1)

sauf key Cette instruction ressemble beaucoup à une instruction utilisant like, sauf que le mot like est remplacé par une expression rationnelle. Il indique à MySQL que ce qui suit l'expression rationnelle est traité comme une expression régulière (une expression régulière qui correspond au corps du texte 1000).

Pourquoi s'embêter à utiliser des expressions régulières ? Dans l'exemple précédent, les expressions régulières n'ont vraiment pas apporté beaucoup d'avantages, mais considérons l'exemple suivant :

sélectionnez prod_name parmi les produits où prod_name regexp '.000'order by prod_name;

Tutoriel sur lutilisation dexpressions régulières pour rechercher dans MySQL (1)

L'expression régulière .000 est utilisée ici. . est un caractère spécial dans le langage des expressions régulières. Cela signifie faire correspondre n'importe quel caractère, donc 1000 et 2000 correspondent et renvoient

Bien sûr, cet exemple spécial peut également être complété en utilisant des caractères J'aime et des caractères génériques.

Il existe une différence importante entre like et regexp. Veuillez consulter les deux déclarations suivantes :

sélectionnez prod_name parmi les produits où prod_name ressemble à '1000', commandez par prod_name ;

sélectionnez prod_name parmi les produits où prod_name regexp '1000' commandez par prod_name ;

Si vous exécutez les deux instructions ci-dessus, vous constaterez que la première instruction ne renvoie pas de données, mais la deuxième instruction renvoie une ligne Pourquoi ?

J'aime correspond à toute la colonne. Si le texte correspondant apparaît dans une valeur de colonne, like ne le trouvera pas et la ligne correspondante ne sera pas renvoyée (sauf si des caractères génériques sont utilisés). Et l'expression rationnelle correspond à la valeur de la colonne. Si le texte correspondant apparaît dans la valeur de la colonne, l'expression rationnelle le trouvera et la ligne correspondante sera renvoyée. C'est une différence très importante.

Alors, l'expression rationnelle peut-elle être utilisée pour faire correspondre la valeur entière de la colonne, jouant le même rôle que like ? La réponse est corrigée, utilisez simplement les localisateurs ^ et $.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn