ホームページ >データベース >mysql チュートリアル >MySQL で重複データを削除するにはどうすればよいですか?

MySQL で重複データを削除するにはどうすればよいですか?

零下一度
零下一度オリジナル
2017-06-29 15:42:371421ブラウズ

この記事では、主に MySQL の関連情報を紹介します 重複データ インスタンスの詳細な説明 必要な友人は、

MySQL 重複データ インスタンスの詳細な説明を参照してください

重複レコードには 2 つの意味があり、1 つは完全です。重複レコード、つまりすべてのフィールドが繰り返されるレコード、もう 1 つは一部のフィールドが繰り返されるレコードです。最初のタイプの重複については、query ステートメントで unique キーワードを使用して重複を削除するだけで比較的簡単に解決できます。この重複の主な理由は、テーブルの設計が不十分であることですが、テーブルに主キーまたは一意の index 列を追加することで回避できます。


select distinct * from t;

2 番目のタイプの重複問題では、通常、重複レコード内の任意のレコードをクエリする必要があります。テーブル t に id、name、および address の 3 つのフィールドがあるとします。id が主キーであり、重複するフィールドは名前とアドレスです。これら 2 つのフィールドの一意の結果セットを取得する必要があります。

-- Oracle、MySQL、相関サブクエリを使用します


select * from t t1

 where t1.id =

 (select min(t2.id)

  from t t2

  where t1.name = t2.name and t1.address = t2.address);

-- Hive は、FROM 句でのサブクエリの使用のみをサポートしており、サブクエリには名前が必要で、列は一意である必要があります


select t1.*

 from t t1,

   (select name, address, min(id) id from t group by name, address) t2

 where t1.id = t2.id;

-- ハイブの row_number() 分析

関数を使用することもできます


select t.id, t.name, t.address

 from (select id, name, address,

row_number() over (distribute by name, address sort by id) as rn 

     from t) t 

 where t.rn=1;

以上がMySQL で重複データを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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