sql >> データベース >  >> RDS >> Mysql

MYSqlテーブルから重複データを見つけて削除するためのクエリ

    これは、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

    上記のように、MYsq​​lサブクエリと自己結合機能を使用すると、重複するデータを見つけて削除するクエリを簡単に作成できます。



    この投稿が気に入ったら、私の公開ノートブックを購読して、もっと便利なものを入手することを忘れないでください


    1. データベース'/data/data/msv_database.db'の接続プールが接続を許可できませんでした。接続:0アクティブ、1アイドル、0使用可能

    2. SQLServerテーブルからランダムな行を取得する方法-SQLServer/TSQLチュートリアルパート117

    3. SQLServerのネストされたselectステートメント

    4. PLPDF_TOOLKIT PL / SQLパッケージを使用して、Oracleで複数のPDFファイルを1つのPDFにマージ/結合