Vous ne pouvez pas utiliser le IN
clause comme ça. Il se compile en un single chaîne dans votre IN
clause. Mais un IN
la clause doit être séparée valeurs.
WHERE id_campo not in (@idcamposexcluidos)
compile vers
WHERE id_campo not in ('817,803,495')
mais ça devrait l'être
WHERE id_campo not in ('817','803','495')
Pour surmonter cela, utilisez SQL dynamique ou dans MySQL, vous pouvez utiliser FIND_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
mais en utilisant une fonction comme FIND_IN_SET()
ne peut pas utiliser les index.