MySQL で、重複レコードを削除する。

重複レコードをSQLデータベースから一括削除:(Nucleusの使い方) にその方法が紹介されている。
  1. 対象のテーブルから重複レコードを除いて新しいテーブルにすべてのレコードを重複なしで書き出す
  2. もとのテーブルを削除
  3. 新しいテーブル名を変更
これはあまりスマートな方法を思えなかったので、他に方法はないか、あちこち探し回ってみたものの、うまい方法が見つからなかった。 SQL 文としては、以下のようになる。field_1、field_2(増やしてもよい)は、重複に関係するフィールドである。
CREATE TABLE temp_table as SELECT * FROM main_table GROUP BY field_1, field_2;
DROP TABLE main_table;
ALTER TABLE temp_table RENAME TO main_table;
トラックバック URL: https://perltips.twinkle.cc/trackback/96