表名radacct radacctid是pk accountuniqueid是订阅者在连接时生成的几乎唯一的字符串。
这是输出重复条目的mysql查询,我希望在同一命令中删除结果,以便自动执行此过程。
select *
from radacct
group by acctuniqueid
HAVING
(radacct.acctuniqueid > 1)
答案 0 :(得分:0)
我认为你的HAVING COUNT(acctuniqueid) > 1
条款中的HAVING
意味着你。如果你真的想要删除所有重复项(即保持无欺骗):
DELETE FROM
radacct
WHERE
`acctuniqueid` IN (
SELECT `acctuniqueid` FROM (
SELECT `acctuniqueid`
FROM radacct
GROUP BY `acctuniqueid`
HAVING COUNT(`acctuniqueid`) > 1
) x
)
;
中间SELECT
是MySQL在直接子选择中忽略相同表引用所必需的。
建议在删除前执行全表备份。