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

hapus baris duplikat berdasarkan nilai satu kolom

Ini mirip dengan kueri Gordon Linoff, tetapi tanpa subkueri:

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

Ini menggunakan gabungan dalam untuk hanya menghapus baris di mana ada baris lain dengan refID yang sama tetapi ID yang lebih rendah.

Manfaat menghindari subquery adalah dapat memanfaatkan indeks untuk pencarian. Kueri ini harus berkinerja baik dengan indeks multi-kolom pada refID + ID.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MyISAM versus InnoDB

  2. Ambil catatan dari satu tabel di mana tidak ada catatan di meja lain

  3. Pertanyaan sensitivitas kasus varchar unik SQL

  4. Periksa nama kolom SQL yang valid

  5. Menentukan secara efisien apakah bisnis buka atau tidak berdasarkan jam buka toko