我收到了一个相当大的 MySQL 数据库,其中有很多重复项。大约三分之一的数据库是重复的。它也缺少主键。
数据库的结构是这样的:
unique_id | field01 | field02 | field03 | field04 | ...... | field26 | field27 |
现在虽然 unique_id 应该是唯一的;有很多重复。
此外,对于属于特定 unique_id 副本的一组行,其余列可能相同也可能不同。例如,查看下面的 unique_id 'id_1',两个实例中的 field01 相同,但 field02 和 field03 不同。
我想删除重复项,并且每个 unique_id 仅保留一份副本。哪一个幸存下来并不重要。
例子:
id_1 | abc | dfd | NULL | ... | def |
id_2 | abc | daf | ghi | ... | 12a |
id_1 | abc | xyz | jkl | ... | def |
id_4 | aaa | bbb | NULL | ... | def |
id_3 | NULL | bbb | NULL | ... | 123 |
id_5 | 1e3 | NULL | NULL | ... | def |
id_3 | aaa | bbb | fds | ... | def |
id_9 | awa | bbb | NULL | ... | 910 |
应该变成:
id_1 | abc | dfd | NULL | ... | def |
id_2 | abc | daf | ghi | ... | 12a |
id_4 | aaa | bbb | NULL | ... | def |
id_3 | NULL | bbb | NULL | ... | 123 |
id_5 | 1e3 | NULL | NULL | ... | def |
id_9 | awa | bbb | NULL | ... | 910 |
或者这也很好:
id_2 | abc | daf | ghi | ... | 12a |
id_1 | abc | xyz | jkl | ... | def |
id_4 | aaa | bbb | NULL | ... | def |
id_5 | 1e3 | NULL | NULL | ... | def |
id_3 | aaa | bbb | fds | ... | def |
id_9 | awa | bbb | NULL | ... | 910 |
完成此操作后,我需要将 unique_is 设置为主键。
请建议最好和准确的方法来做到这一点。提前致谢。