Lors de la tentative d'exclusion de certaines valeurs dans une requête MySQL à l'aide d'une liste « NOT IN », l'attribution d'un variable aux valeurs exclues peut être une solution pratique. Cependant, il est crucial de garantir le bon format de variable.
Comme décrit dans votre requête, vous avez essayé d'attribuer la variable '@idcamposexcluidos' avec différents formats :
Cependant, aucun de ces formats ne fonctionne comme prévu. La raison en est que la clause « IN » nécessite des valeurs distinctes, et non une seule chaîne. Par conséquent, la requête :
WHERE id_campo not in (@idcamposexcluidos)
devient effectivement :
WHERE id_campo not in ('817,803,495')
ce qui est incorrect. Les valeurs doivent être fournies sous forme de chaînes littérales distinctes :
WHERE id_campo not in ('817','803','495')
Pour résoudre ce problème, il existe deux options :
SET @idcamposexcluidos='817,803,495'; ... WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Notez que l'utilisation de FIND_IN_SET() la fonction peut nuire à l’utilisation de l’index.
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!