Élargissement de la portée de l'opérateur Like de MySQL
L'opérateur Like de MySQL est un outil puissant pour faire correspondre des modèles dans des chaînes. Cependant, cela peut parfois échouer lorsqu'il s'agit de critères de correspondance complexes impliquant plusieurs valeurs.
Considérez la requête suivante, qui vise à récupérer les lignes où le champ d'intérêts contient soit sports, soit pub (ou les deux) :
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
À la surprise de beaucoup, cette requête ne produit pas les résultats escomptés. La raison réside dans la manière dont l’opérateur Like gère plusieurs modèles. Il applique chaque modèle séquentiellement et renvoie les lignes qui correspondent aux deux modèles. Dans ce cas, la requête devient effectivement :
SELECT * FROM table WHERE interests LIKE ('%sports%') AND interests LIKE ('%pub%')
Comme aucune des valeurs du champ d'intérêt ne contient à la fois "sports" et "pub", la requête renvoie un ensemble vide.
La solution : adopter des techniques de correspondance alternatives
Pour résoudre ce problème, nous devons adopter une approche différente. La première option consiste à séparer les modèles à l'aide d'opérateurs logiques :
SELECT * FROM table WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Cette requête correspond efficacement aux lignes qui contiennent soit « sports » soit « pub » dans le champ d'intérêts.
Une option encore plus Une solution efficace consiste à utiliser l'opérateur REGEXP de MySQL, qui nous permet de faire correspondre des modèles à l'aide d'expressions régulières :
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
Cette requête utilise le '|' (pipe) pour spécifier que le champ d'intérêt doit correspondre soit à « sports » soit à « pub ».
En employant ces techniques de correspondance alternatives, nous pouvons étendre la fonctionnalité de l'opérateur Like et récupérer les lignes qui correspondent à nos souhaits. critères.
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!