これは、mysqlテーブルで重複データを処理する際によくある問題です。大量のデータを処理している場合は、この問題に直面している可能性があります。この投稿では、重複データを見つけることができるMYsqlクエリを紹介します。そしてそれを削除します。これは、面接時に最もよく聞かれる質問でもあります。
データベースに25,000の企業があり、重複する企業がいくつか存在するとします。会社のテーブルで、重複する会社を検索し、会社のテーブルから完全に削除してから、以下のmysqlクエリを使用します。
TB_COMPANIES
ID | COMPANY_NAME | アドレス | CONTACT_PERSON_NAME | EMAILID | PHONENO |
---|---|---|---|---|---|
1 | HCLLTD。 | NOIDA | XXXXXXX | [email protected] | xxxxxxxx |
2 | WIPRO | デリー | XXXXXXX | [email protected] | xxxxxxxx |
3 | HCLLTD。 | NOIDA | XXXXXXX | [email protected] | xxxxxxxx |
.. | .. | .. | .. | x .. | … |
.. | .. | .. | .. | x .. | … |
.. | .. | .. | .. | x .. | … |
上記の表には、HCL社の重複レコードがあります。これを見つけて削除する必要があります。
重複データを見つけるためのMYSqlクエリ。
SELECT COMPANY_NAME FROM TB_COMPANIES WHERE COMPANY_NAME IN ( SELECT COMPANY_NAME FROM TB_COMPANIES GROUP BY COMPANY_NAME HAVING COUNT( COMPANY_NAME ) >1 ) |
重複データを削除するためのMYSqlクエリ。
DELETE C1 FROM TB_COMPANIES C1,TB_COMPANIES C2 WHERE C1.ID < C2.ID AND C1.COMPANY_NAME = C2.COMPANY_NAME |
上記のように、MYsqlサブクエリと自己結合機能を使用すると、重複するデータを見つけて削除するクエリを簡単に作成できます。