Lorsque vous traitez des requêtes MySQL impliquant plusieurs valeurs dans une condition LIKE, un défi courant consiste à faire correspondre les lignes contenant l'un des valeurs spécifiées. Dans ce cas précis, la requête tente de trouver les enregistrements dont le champ d'intérêts contient soit « sports », soit « pub », ou les deux. Cependant, la requête fournie ne produit pas les résultats escomptés.
Pour résoudre ce problème, il existe plusieurs solutions alternatives :
1. Utilisation de l'opérateur OR :
L'opérateur OR peut être utilisé pour connecter plusieurs conditions LIKE :
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
2. Utilisation de l'opérateur REGEXP :
L'opérateur REGEXP fournit un moyen plus concis et efficace de faire correspondre plusieurs valeurs :
WHERE interests REGEXP 'sports|pub'
Dans ce cas, REGEXP fera correspondre les lignes qui contiennent soit des « sports » ' ou 'pub' dans le champ des intérêts.
3. Utilisation de l'opérateur IN :
Une autre option consiste à utiliser l'opérateur IN pour vérifier plusieurs valeurs dans un ensemble :
WHERE interests IN ('sports', 'pub')
Le REGEXP L'opérateur utilise un modèle d'expression régulière pour faire correspondre les valeurs spécifiées. Dans ce cas, le modèle « sports|pub » correspond à n'importe quelle chaîne contenant « sports » ou « pub ».
Le « | » Le symbole dans l'expression régulière représente un OU logique, indiquant que le modèle correspond si l'une des deux valeurs est présente dans la chaîne d'entrée.
Utilisation de l'opérateur OR, de l'opérateur REGEXP ou L'opérateur IN associé à la condition LIKE offre plus de flexibilité et d'efficacité lors de la correspondance de plusieurs valeurs dans les requêtes MySQL.
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!