我收到了一個相當大的MySQL數據庫,其中有很多重複項。大約三分之一的數據庫是重複的。這也是失蹤一個主鍵。在沒有主鍵的情況下刪除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爲首要的關鍵。
請指教最好的和準確的方式來做到這一點。提前致謝。
待辦事項你想僅在unique_id列上進行重複檢查嗎? –
請參閱此主題,您將獲得有關刪除重複值的一些見解:: http://stackoverflow.com/questions/2728413/equivalent-of-oracles-rowid-in-mysql –