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

テーブル内の重複するエントリを削除します

    これを行う1つの方法は、LEFT JOINを使用してサブクエリでテーブルを結合することです。 。サブクエリは最小のIDを取得します すべてのUID 。サブクエリでレコードが一致しない場合は、一致するレコードがなく、安全に削除できることを意味します。

    DELETE  a
    FROM    TableName a
            LEFT JOIN
            (
                SELECT  uid, MIN(ID) min_ID
                FROM    TableName
                GROUP   BY uid
            ) b ON  a.uid = b.uid AND
                    a.ID = b.min_ID
    WHERE   b.uid IS NULL
    

    ただし、UIDのレコードの場合 別の名前を付けることができる場合は、nameを含める必要があります group by 句または一意のuidのみ IDが最も小さい 残ります。

    DELETE  a
    FROM    TableName a
            LEFT JOIN
            (
                SELECT  uid, MIN(ID) min_ID, name
                FROM    TableName
                GROUP   BY uid, name
            ) b ON  a.uid = b.uid AND
                    a.ID = b.min_ID AND
                    a.name = b.name
    WHERE   b.uid IS NULL
    


    1. C#Mysqlexecutenonqueryasyncは非同期ではありません

    2. MySQLResultSetのスクロール可能/更新可能が期待どおりに機能しない

    3. 特定のスキーマにテーブルが存在するかどうかを確認する方法

    4. SQL ServerManagementStudioを使用してBLOBをデータベースに挿入する方法