多くの重複があるかなり大きな MySQL データベースを受け取りました。データベースの約 3 分の 1 が重複しています。また、主キーもありません。
データベースの構造は次のとおりです。
unique_id | field01 | field02 | field03 | field04 | ...... | field26 | field27 |
ここで、unique_id は一意であると想定されていますが、まあ、一意です。重複が多い。
また、特定の unique_id のコピーに属する行のセットの場合、残りの列は同じである場合と異なる場合があります。たとえば、以下の unique_id 'id_1' を見ると、field01 は両方のインスタンスで同じですが、field02 と field03 は異なります。
繰り返しを削除して、各 unique_id のコピーを 1 つだけ残したいと思います。どちらが生き残るかは問題ではありません。
例:
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 を主キーとして設定する必要があります。
これを行うための最善かつ正確な方法をアドバイスしてください。前もって感謝します。