ホームページ >データベース >mysql チュートリアル >MySQL で重複データを削除するにはどうすればよいですか?
この記事では、主に 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 サイトの他の関連記事を参照してください。