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


重複対策をせずにデータを挿入してしまったり何かの間違いで重複した値がフィールドに入ってしまった場合に簡単に削除する方法

下記のようなテーブルがあるとして

テーブル名:table_name
|id |name          |age |
|1  |あいうえおさむ|10  |
|2  |イボジ        |20  |
|3  |あいうえおさむ|30  |

[sql]

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

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

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

DROP TABLE table_name;

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

ALTER TABLE table_name2 RENAME TO table_name;

[/sql]

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


この投稿へのコメント

コメントはありません。

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL