MySQLで値が重複してしまったレコードを一括削除する

2016-07-15

MySQLで値が重複してしまったレコードを一括削除する

このエントリーをはてなブックマークに追加

下記のようなテーブルがある場合に重複レコードを削除したい

テーブル名:table_name

idnameage
1あいうえおさむ10
2イボジ20
3あいうえおさむ30

名前の重複をなくして新たにテーブルを作成する

CREATE TABLE table_name2 as SELECT * FROM table_name GROUP BY name;

以前のテーブルを削除する

DROP TABLE table_name;

重複レコードを削除したテーブル名を以前のテーブル名に変更する

ALTER TABLE table_name2 RENAME TO table_name;

もし不安な場合は以前のテーブルの名前も変更しておいてバックアップをとっておくといいと思う。