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

1つの列の値に基づいて重複する行を削除します

    これはGordonLinoffのクエリに似ていますが、サブクエリがありません:

    DELETE t1 FROM table t1
      JOIN table t2
      ON t2.refID = t1.refID
      AND t2.ID < t1.ID
    

    これは、内部結合を使用して、同じrefIDでIDが低い別の行がある行のみを削除します。

    サブクエリを回避する利点は、検索にインデックスを利用できることです。このクエリは、refID+IDの複数列のインデックスで適切に実行されるはずです。



    1. MySQLデータベース/テーブル/列がどの文字セットであるかを確認するにはどうすればよいですか?

    2. 2つのテーブルを持つMysqlクエリphp

    3. SQLクエリを作成するための9つのベストプラクティス

    4. SQL Server 2019でネイティブにコンパイルされたストアドプロシージャを実行するときの「内部接続の致命的なエラー」(既知のバグ)