我有一个表“recipientscore”,如下所示:
我想要做的是删除出现两次或更多次的所有记录。我不想保留每个重复记录的一个版本。清理后它会是这样的:
您对如何做到这一点有所了解吗?
谢谢!
答案 0 :(得分:2)
delete from recipientscore
where messageid in
(
select * from
(
select messageid from recipientscore
group by messageid
having count(*) > 1
) x
)
答案 1 :(得分:0)
'juergen d'给出的答案是完美的。如果您希望只保留一个唯一的行并删除剩余的重复行,则可以尝试此操作。
ALTER IGNORE TABLE recipient score ADD UNIQUE KEY idx1(messageid);