カテゴリー : 2010年 12月

mysqlから重複データの削除

mysqlから重複データの削除をしたい場合。

例えば、itemテーブルのcodeというカラムに同じデータが入っているものをひとつに統合する場合。

insert into item_temp SELECT * from item  where id in ( select MAX(ID) FROM item GROUP BY code )

とする。

そのあと、item_tempを、リネームして、もとのテーブルを削除すればOK。

ただし、この場合は重複レコードのうち、IDが最大のものが残される。ほかに条件が必要な場合は、適宜、最後のSELECT文を書き換えればOK。

一手間かかってめんどくさいのだけど、この方法しか思いつかない。。。

もっと便利な方法あったら教えて!