ホームページ  >  記事  >  バックエンド開発  >  mysqlで重複したレコードを削除する方法

mysqlで重複したレコードを削除する方法

WBOY
WBOYオリジナル
2016-06-23 14:21:23889ブラウズ

mysql

テーブル名は tongxunlu 、フィールド ID は sXingMing sXingBie dtShengRi
データのコピーが複数挿入されているため、重複したものを削除したいです

ディスカッション (解決策) への返信

例を示します重複を判断する方法。

手動削除。 。

sXingMing sXingBie dtShengRi のフィールド値が同じかどうかを直接判断し、必要に応じて削除できます

重複レコードを削除します

delete from tongxunlu a where  rowid not in(select max(rowid) from tongxunlu where id=a.id and sXingMing=a.sXingMing and  sXingBie=a. sXingBie and dtShengRi=a.dtShengRi); 

delete from tongxunlu  where  id not in(select max(id) from tongxunlu group by id sXingMing sXingBie dtShengRi;


重複を判断する条件は何ですか?どのようなグループ化が使用されているか。

まずデータの数について話しましょう。
データがあまりない場合は、データ テーブルをバックアップし、元のテーブルをクリアし、バックアップ データ テーブルを foreach でスキャンして、一意のものを元のテーブルに挿入します。
これで問題は解決します。それほど高度なことを行う必要はありません。

サードパーティのツールを使用して直接削除されたデータはほんの一部です。

delete from tb1 where id in(select id,count(id) as tt from tb.where getting tt>1)
実行には確実に一定の時間がかかります、キーはデータの量によって異なります

delete from tb1 where id in(select id,count(id) as tt from tb.where getting tt>1 group by $fn)
失われたグループ by

学びました


気分と技術的な生活を解放しましょう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。