MySQL:从子查询中删除信息
问题描述:
我有一个表delete_requests,其中存储了我用户表的条目的删除请求的id。是否可以从delete_requests中删除信息作为条件?MySQL:从子查询中删除信息
我的问题是,结果集通常不会限制为一行,而是返回几个。
DELETE FROM users WHERE id=(SELECT id FROM delete_requests)
因此MySQL抱怨:
#1242 - Subquery returns more than 1 row
可这在一个语句来完成,而无需把逻辑到执行的应用程序?
答
使用IN子句
DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)
+0
谢谢Shakti,它现在正在工作! –
+0
@Frank:您永远的欢迎 –
答
您可以使用in子句。
DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)
答
DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)
它应该的,因为你不限制子查询来获取特定的记录它获取的所有记录和** = **意味着你只希望一场比赛。 – punit
你试过用ID IN(子查询),而不是id = – punit
谢谢你,我试了一下它很好用。 –