如何在MYSQL IN条件中使用存储在变量中的逗号分隔值?

时间:2014-07-31 13:47:55

标签: mysql database

我必须使用查询从数据库中删除某些行。例如,我有一个变量,它以逗号分隔模式存储id:

@ids = (1,2,3);

现在我想在IN子句中使用这个ID:

delete from table_name where id in (@ids); 

但它不起作用。任何建议或帮助都会非常有用。

由于

1 个答案:

答案 0 :(得分:3)

将变量放入查询不会将其替换为字符串,它仍然被视为单个值。所以WHERE id IN (@ids)没有查找任何数字,它正在寻找与整个字符串1,2,3匹配的ID。

您必须使用FIND_IN_SET来匹配字符串中逗号分隔的列表。

SET @ids = '1,2,3';
DELETE FROM table_name
WHERE FIND_IN_SET(id, @ids);