Maison > base de données > tutoriel mysql > Comment interroger efficacement plusieurs valeurs avec l'opérateur LIKE de MySQL ?

Comment interroger efficacement plusieurs valeurs avec l'opérateur LIKE de MySQL ?

Mary-Kate Olsen
Libérer: 2025-01-06 03:37:39
original
896 Les gens l'ont consulté

How to Efficiently Query Multiple Values with MySQL's LIKE Operator?

Valeurs multiples dans les requêtes MySQL LIKE

Dans les bases de données, l'opérateur LIKE est couramment utilisé pour faire correspondre des modèles dans des chaînes. Cependant, cela peut devenir délicat lorsque vous devez trouver des correspondances pour plusieurs valeurs dans un seul champ. Cet article explore le problème de l'interrogation de plusieurs valeurs à l'aide de l'opérateur LIKE dans MySQL.

Pourquoi la requête LIKE ne fonctionne pas

Selon votre requête fournie :

SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Copier après la connexion

Cette requête cherche à récupérer les lignes où le champ « intérêts » contient soit « sports », soit « pub », ou les deux. Cependant, il se peut que cela ne donne pas les résultats souhaités car LIKE vérifie séquentiellement la présence des modèles spécifiés. Dans ce cas, il recherche d'abord « %sports% », qui existe dans toutes les lignes, puis « %pub% », qui n'existe que dans une seule ligne. Ainsi, vous n'obtiendrez que la ligne contenant à la fois « sports » et « pub ».

Des solutions plus rapides et plus efficaces

Au lieu d'utiliser LIKE avec plusieurs modèles, considérez les alternatives suivantes :

OU Logique Opérateur :

WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Copier après la connexion

Cette requête utilise l'opérateur logique OR pour combiner deux instructions LIKE. Il renverra toutes les lignes correspondant à l'un ou l'autre modèle. Cette méthode est généralement plus rapide que LIKE avec plusieurs modèles.

Expression régulière REGEXP :

WHERE interests REGEXP 'sports|pub'
Copier après la connexion

L'opérateur REGEXP vous permet de rechercher des expressions régulières. Dans ce cas, l'expression « sports|pub » signifie qu'il trouvera des correspondances pour « sports » ou « pub ». REGEXP peut être un outil puissant pour une correspondance de modèles plus complexes.

Liens de référence :

  • Discussion sur les forums MySQL : http://forums.mysql.com/read.php?10,392332,392950#msg-392950
  • Documentation MySQL REGEXP : http://www.tutorialspoint.com/mysql/mysql-regexps.htm

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal