Я не понимаю, почему это не работает. Может кто-нибудь объяснить, что мне нужно делать?
SET @my_list = '2,6,8,10,12,13,14,18,19,21';
DELETE FROM my_table WHERE my_table.table_id IN (@my_list);
Я не понимаю, почему это не работает. Может кто-нибудь объяснить, что мне нужно делать?
SET @my_list = '2,6,8,10,12,13,14,18,19,21';
DELETE FROM my_table WHERE my_table.table_id IN (@my_list);
Он интерпретирует @my_list как один идентификатор, поэтому вы просите его удалить из my_table, где ваш идентификатор представляет собой строку «2,6,8,10,12,13,14,18,19,21».
Вы могли бы попробовать
SET @my_list = '2,6,8,10,12,13,14,18,19,21';
SET @exec = CONCAT('DELETE FROM my_table WHERE my_table.table_id IN (', @my_list ,')');
EXECUTE (@exec);