Sie können den IN
nicht verwenden Klausel so. Es wird zu einer Single kompiliert Zeichenfolge in Ihrem IN
Klausel. Sondern ein IN
Klausel muss getrennt werden Werte.
WHERE id_campo not in (@idcamposexcluidos)
kompiliert zu
WHERE id_campo not in ('817,803,495')
aber es sollte sein
WHERE id_campo not in ('817','803','495')
Um dies zu umgehen, verwenden Sie entweder dynamisches SQL oder in MySQL können Sie FIND_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
aber mit einer Funktion wie FIND_IN_SET()
kann keine Indizes verwenden.