如何在一个mysql命令中删除此选择查询的结果?
表名radacct radacctid是pk accountuniqueid是订阅者在连接时生成的几乎唯一的字符串 这是一个mysql查询,它输出重复的条目,我希望以相同的命令y删除结果,以自动化此过程如何在一个mysql命令中删除此选择查询的结果?,mysql,select,duplicates,freeradius,Mysql,Select,Duplicates,Freeradius,表名radacct radacctid是pk accountuniqueid是订阅者在连接时生成的几乎唯一的字符串 这是一个mysql查询,它输出重复的条目,我希望以相同的命令y删除结果,以自动化此过程 select * from radacct group by acctuniqueid HAVING (radacct.acctuniqueid > 1) 我假设您在HAVING子句中的意思是HAVING COUNT(acctuniqueid)>1。如果确实要删除所有副本(即不保留任何副
select *
from radacct
group by acctuniqueid
HAVING
(radacct.acctuniqueid > 1)
我假设您在
HAVING
子句中的意思是HAVING COUNT(acctuniqueid)>1
。如果确实要删除所有副本(即不保留任何副本):
中间SELECT
是MySQL忽略直接子选择中的相同表引用所必需的
建议您在删除之前执行完整的表备份。是否要删除此查询中输出的内容?请小心您想要的内容。如果查询说acctuniqueid=100,您是想删除acctuniqueid=100的每一行,还是只保留acctuniqueid=100的一行谢谢,这超出了我在MySQL领域的能力。
DELETE FROM
radacct
WHERE
`acctuniqueid` IN (
SELECT `acctuniqueid` FROM (
SELECT `acctuniqueid`
FROM radacct
GROUP BY `acctuniqueid`
HAVING COUNT(`acctuniqueid`) > 1
) x
)
;