Nie możesz użyć IN
taka klauzula. Kompiluje się do singla ciąg w Twoim IN
klauzula. Ale IN
klauzula wymaga oddzielenia wartości.
WHERE id_campo not in (@idcamposexcluidos)
kompiluje do
WHERE id_campo not in ('817,803,495')
ale powinno być
WHERE id_campo not in ('817','803','495')
Aby rozwiązać ten problem, użyj dynamicznego SQL lub MySQL, możesz użyć ZNAJDŹ_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
ale używając funkcji takiej jak FIND_IN_SET()
nie może korzystać z indeksów.