Requête MySQL LIKE pour plusieurs valeurs
Cet article aborde un problème courant rencontré lors de l'utilisation de l'opérateur LIKE dans les requêtes MySQL pour rechercher plusieurs valeurs . L'objectif est de trouver les lignes dans lesquelles un champ particulier contient au moins une des valeurs spécifiées.
Requête et exemples de données
Considérez la requête MySQL suivante :
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Avec les exemples de données suivants dans les "intérêts" field :
sports,shopping,pool,pc,games shopping,pool,pc,games sports,pub,swimming, pool, pc, games
Description du problème
La requête ci-dessus ne fonctionne pas comme prévu. Il ne parvient pas à renvoyer les lignes contenant « sports » ou « pub ».
Solution : utilisation d'opérateurs booléens
Une solution simple consiste à utiliser des opérateurs booléens tels que OU pour spécifier des conditions pour plusieurs valeurs :
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Solution plus efficace : utiliser REGEXP
MySQL fournit un moyen plus efficace de rechercher plusieurs valeurs à l'aide de l'opérateur REGEXP :
WHERE interests REGEXP 'sports|pub'
Cette solution utilise l'opérateur REGEXP pour spécifier une expression régulière qui correspond aux lignes où le champ « centres d'intérêt » contient soit « sports », soit "pub."
Ressources
Pour plus d'informations sur REGEXP dans MySQL, reportez-vous aux ressources suivantes :
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!