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

hapus entri duplikat dalam tabel

Salah satu cara untuk melakukannya adalah dengan menggabungkan tabel pada subquery menggunakan LEFT JOIN . Subquery mendapatkan ID terendah untuk setiap UID . Ketika sebuah record tidak memiliki kecocokan pada subquery, itu berarti bahwa record tersebut tidak memiliki record yang cocok dan dapat dihapus dengan aman.

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

Namun, jika catatan UID dapat memiliki nama yang berbeda, maka Anda harus memasukkan name pada group by klausa atau hanya uid unique yang unik dengan ID terendah akan tetap ada.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. $wpdb->masukkan tidak berfungsi. Tidak Ada Pesan Kesalahan

  2. Cari di dalam data bersambung dengan MYSQL

  3. Apakah ide yang baik untuk menggunakan Hibernate untuk mewakili hubungan tabel?

  4. Bagaimana cara mengakses server jarak jauh dengan klien phpMyAdmin lokal?

  5. Jenis MySQL untuk Menyimpan Setahun:Smallint atau Varchar atau Tanggal?