Maison  >  Article  >  base de données  >  Pourquoi ma requête MySQL utilisant LIKE ne parvient-elle pas à faire correspondre les chaînes commençant par « ALA » suivi d'un seul chiffre ?

Pourquoi ma requête MySQL utilisant LIKE ne parvient-elle pas à faire correspondre les chaînes commençant par « ALA » suivi d'un seul chiffre ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 11:34:02825parcourir

 Why is My MySQL Query Using LIKE Failing to Match Strings Starting with

Correspondance d'expressions régulières dans les requêtes MySQL

Dans la gestion de bases de données, les expressions régulières (regex) sont des outils puissants pour rechercher et faire correspondre des modèles dans des chaînes. Par exemple, vous devrez peut-être rechercher des enregistrements spécifiques dans une base de données en fonction de critères de chaîne spécifiques.

Le problème : Regex avec l'opérateur LIKE

Vous avez rencontré un problème lors de tenter de rechercher des enregistrements commençant par une chaîne particulière suivie d'un seul chiffre à l'aide de l'opérateur LIKE. Vos requêtes n'ont pas réussi à renvoyer les enregistrements correspondants, malgré la présence de données pertinentes dans la table.

Solution : utiliser REGEXP au lieu de LIKE

Pour résoudre le problème, il Il est recommandé d'utiliser l'opérateur REGEXP au lieu de LIKE. REGEXP offre des capacités de correspondance de modèles plus avancées et plus flexibles.

Voici une requête ajustée qui devrait fonctionner correctement :

SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')

Explication :

  • Le caractère ^ ancre le modèle au début de la chaîne, garantissant qu'il correspond aux enregistrements commençant par « ALA ».
  • La classe de caractères [0-9] correspond à n'importe quel chiffre de 0 à 9.
  • Ensemble, « ^ALA[0-9] » correspond aux chaînes commençant par « ALA » suivi d'un seul chiffre.

Considérations supplémentaires

  • Assurez-vous que votre moteur de base de données prend en charge REGEXP, car certaines anciennes versions peuvent ne pas le faire.
  • Le moteur innodb que vous utilisez prend en charge REGEXP.
  • Si vous rencontrez des problèmes, vérifiez que votre configuration PHP MySQL est correcte.

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