【mysql】特定のフィールドで重複しているレコードを削除する

この記事について

環境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

関連記事

タイトルとURLをコピーしました