在MySQL中如何在WHERE IN子句中使用用户定义的变量?

时间:2011-10-18 23:38:39

标签: mysql sql-delete where-in user-defined

我不明白为什么这不起作用。有人可以解释我需要做什么吗?

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 个答案:

答案 0 :(得分:1)

它将@my_list解释为单个id,所以你要求它从my_table中删除你的id为字符串“2,6,8,10,12,13,14,18,19,21”< / p>

你可以尝试

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