我需要从数据库中删除重复的行。我可以用简单的 sql 查询来做吗?如果没有,请告诉我一些快速的算法来做到这一点。
例子:
id| field_one | field_two |
1 | 0000000 | 11111111 |
2 | 2222222 | 33333333 |
3 | 2222222 | 33333333 |
4 | 4444444 | 55555555 |
Run Code Online (Sandbox Code Playgroud)
我需要删除 id 为 2(或 3,无论如何,它们是相等的,但不是两者)的行。谢谢你的帮助
delete from the_table where id in
(select max(id) from the_table
group by field_one, field_two
having count(*) > 1)
Run Code Online (Sandbox Code Playgroud)
正如评论中所指出的,如果一行出现 3 次,这将不起作用。您可以重复运行此(重)查询,直到它停止删除内容,或者等待更好的答案...