2011-10-12 102 views
0

我有一个表delete_requests,其中存储了我用户表的条目的删除请求的id。是否可以从delete_requests中删除信息作为条件?MySQL:从子查询中删除信息

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

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

因此MySQL抱怨:

#1242 - Subquery returns more than 1 row 

可这在一个语句来完成,而无需把逻辑到执行的应用程序?

+0

它应该的,因为你不限制子查询来获取特定的记录它获取的所有记录和** = **意味着你只希望一场比赛。 – punit

+0

你试过用ID IN(子查询),而不是id = – punit

+0

谢谢你,我试了一下它很好用。 –

回答

5

使用IN子句

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

谢谢Shakti,它现在正在工作! –

+0

@Frank:您永远的欢迎 –

2

您可以使用in子句。

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