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

2016-07-15

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

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

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

テーブル名:table_name

id name age
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;

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