この記事について
| 環境 | mysql |
|---|---|
| 目的 | 特定のフィールドで重複しているレコードを一つ残して削除する |
| 結果 | GROUP BYでまとめた結果をCREATE TABLE ASでコピーし、元テーブルをDROPしてリネームする |
つまずきポイント要約
- DROP TABLEを使う力技なので、くれぐれも自己責任で
たとえば”field1″でレコードが重複しているので、一つを残してその他を削除したいときの手順。
1.field1をグループ化して、重複データを1つにまとめる。その状態のテーブルをコピー。
//グループ化してcopy_tableという名前のテーブルを作った。
CREATE TABLE copy_table as SELECT * FROM main_table GROUP BY field1
2.メインテーブルを削除。(くれぐれも自己責任で!)
DROP TABLE main_table
3.コピーしたテーブルをメインテーブルにリネーム。
ALTER TABLE copy_table RENAME TO main_table
