В MySQL, как я могу использовать пользовательскую переменную в предложении WHERE IN? - PullRequest
0 голосов
/ 19 октября 2011

Я не понимаю, почему это не работает. Может кто-нибудь объяснить, что мне нужно делать?

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);

1 Ответ

1 голос
/ 19 октября 2011

Он интерпретирует @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);
...