Maison >base de données >tutoriel mysql >Comment utiliser la clause « NOT IN » de MySQL avec une liste de valeurs ?

Comment utiliser la clause « NOT IN » de MySQL avec une liste de valeurs ?

DDD
DDDoriginal
2025-01-01 13:56:11175parcourir

How to Use MySQL's

Syntaxe MySQL pour les listes de valeurs "NOT IN"

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 :

  • SQL dynamique : Construisez la chaîne de requête avec le bon syntaxe, garantissant que les valeurs individuelles sont spécifiées dans la clause "NOT IN".
  • FIND_IN_SET : MySQL fournit la fonction FIND_IN_SET(), qui peut être utilisée comme suit :
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!

Déclaration:
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