Maison >base de données >tutoriel mysql >Comment utiliser la clause « NOT IN » de MySQL avec une liste de valeurs ?
Question :
Comment définir une variable MySQL avec une liste de valeurs à utiliser dans une clause "NOT IN", excluant efficacement plusieurs valeurs d'un requête ?
Réponse :
Lors de la construction d'une clause "NOT IN" avec une liste de valeurs, il est essentiel d'éviter d'utiliser la liste entière comme une seule chaîne dans le clause. MySQL le compile sous forme de chaîne unifiée, tandis que la clause "NOT IN" nécessite des valeurs individuelles. Prenons l'exemple suivant :
WHERE id_campo NOT IN (@idcamposexcluidos)
Ceci compile en :
WHERE id_campo NOT IN ('817,803,495')
Cependant, la syntaxe correcte serait :
WHERE id_campo NOT IN ('817', '803', '495')
Pour surmonter ce problème, il existe deux approches courantes :
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Il est important de noter que l'utilisation de la fonction FIND_IN_SET() peut avoir un impact sur les performances si des index sont utilisés sur le Colonne 'id_campo'.
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!