Mysql
 sql >> Base de données >  >> RDS >> Mysql

Format de variable MySQL pour une liste de valeurs NOT IN

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.