我尝试使用以下查询删除多个条目:
首先,我使用此查询找到要删除的条目:
SELECT guid FROM account GROUP BY guid,type HAVING count(type) > 1);
然后我将此查询添加到 DELETE 语句中:
DELETE FROM account WHERE guid IN (SELECT guid FROM account GROUP BY guid,type HAVING count(type) > 1);
但我收到这个错误:
您无法在 FROM 子句中指定要更新的目标表“account”
我认为您需要使用临时表来实现您的需求,如下所示:
-
步骤1:创建临时表
CREATE TEMPORARY TABLE MyTemp
SELECT guid FROM account
GROUP BY guid,type HAVING count(type) > 1;
-
在删除语句中使用临时表
DELETE FROM account
WHERE guid IN (SELECT guid FROM MyTemp);
-
删除临时表
DROP TEMPORARY TABLE MyTemp;
EDIT:我认为可以解决 *两个嵌套表也有效:
DELETE FROM account
WHERE guid IN
(SELECT guid FROM
(SELECT guid FROM account
GROUP BY guid,type HAVING count(type) > 1) as MyTemp
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)