表名radacct radacctid是pk accountuniqueid是订户在连接时生成的几乎唯一的字符串。

这是mysql查询,该查询输出我想要以相同命令y删除结果的重复条目以自动执行此过程。

select *
from radacct
group by acctuniqueid
HAVING
(radacct.acctuniqueid > 1)

最佳答案

我假设您在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忽略直接子选择内的同一表引用是必需的。

建议删除前执行全表备份。

10-08 15:58