Anda tidak dapat menggunakan IN
klausa seperti itu. Itu dikompilasi menjadi tunggal string di IN
. Anda ayat. Tapi sebuah IN
klausa perlu terpisah nilai.
WHERE id_campo not in (@idcamposexcluidos)
kompilasi ke
WHERE id_campo not in ('817,803,495')
tapi seharusnya
WHERE id_campo not in ('817','803','495')
Untuk mengatasinya baik menggunakan SQL dinamis atau di MySQL Anda bisa menggunakan FIND_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
tetapi menggunakan fungsi seperti FIND_IN_SET()
tidak dapat menggunakan indeks.