Du kan ikke bruge IN
sådan klausul. Den kompilerer til en enkelt streng i din IN
klausul. Men en IN
klausul skal adskilles værdier.
WHERE id_campo not in (@idcamposexcluidos)
kompilerer til
WHERE id_campo not in ('817,803,495')
men det burde være
WHERE id_campo not in ('817','803','495')
For at overvinde dette, brug enten dynamisk SQL eller i MySQL kan du bruge FIND_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
men ved at bruge en funktion som FIND_IN_SET()
kan ikke gøre brug af indekser.