Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menghapus baris duplikat dari tabel 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;

Tentu saja Anda harus memperluas col1, col2 di ketiga tempat ke semua kolom.

Sunting:Saya baru saja mengeluarkan ini dari skrip yang saya simpan dan uji ulang, dijalankan di MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif untuk menggunakan kata kunci LIMIT dalam SubQuery di MYSQL

  2. perbarui nilai kolom dengan kolom tabel lain berdasarkan kondisi

  3. Java mendapatkan ResultSet dari SQL Array Gagal

  4. Bagaimana cara mengubah tanggal manusia menjadi cap waktu unix di Mysql?

  5. Kolom tidak dikenal dalam daftar bidang