MySQL:使用子查询中的信息DELETE FROM

时间:2011-10-12 09:53:40

标签: mysql subquery delete-row

我有一个表delete_requests,其中我存储了对于users表条目的删除请求的id。是否可以使用delete_requests中的信息作为条件从用户中删除?

我的问题是,结果集通常不会限制在一行,而是返回几行。

DELETE FROM users WHERE id=(SELECT id FROM delete_requests)

所以MySQL抱怨:

#1242 - Subquery returns more than 1 row

这可以在一个语句中完成而不将逻辑放入正在执行的应用程序中吗?

3 个答案:

答案 0 :(得分:5)

使用IN子句

DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)

答案 1 :(得分:2)

您可以使用in子句。

DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)

答案 2 :(得分:2)

DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)
相关问题