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

MySQLテーブルから重複する行を削除する方法

    DELETE DupRows.*
    FROM MyTable AS DupRows
       INNER JOIN (
          SELECT MIN(ID) AS minId, col1, col2
          FROM MyTable
          GROUP BY col1, col2
          HAVING COUNT(*) > 1
       ) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
          AND SaveRows.minId <> DupRows.ID;
    

    もちろん、3か所すべてのcol1、col2をすべての列に拡張する必要があります。

    編集:これを保持して再テストしたスクリプトから取り出したところ、MySQLで実行されます。



    1. loaddataコマンドを使用せずにデータベースにデータを入力する

    2. PostgreSQLとSQLServerでUUIDを休止状態にする

    3. チャットアプリのストレージ効率のためのファイルとデータベース

    4. シリアル化可能な分離レベル