SQL QUERY : Mencari dan Menghapus Data Duplikat



Adakalanya kita memiliki data duplikat pada database / table tertentu. tentunya hal ini diakibatkan oleh kurangnya filter pada form yang menjadi input ke database ataupun salahnya pembentukan database itu sendiri yang dapat mengakibatkan data duplikat.

untuk menghapus data duplikat tersebut tentnunya kita perlu mencari terlebih dahulu, berikut script untuk mencari data duplikat




 select * from [nama_table]  
 WHERE [field] IN (SELECT dupid FROM (SELECT MAX([field]) AS dupid,COUNT(*) AS dupcnt  
 FROM [nama_table]  
 GROUP BY [field ] HAVING COUNT(*) > 1) AS duptable)  


Keterangan : 
[nama_table] = nama table
[ field ] = field yang terdapat duplikat data

Dari script tersebut akan muncul data - data yang terinput lebih dari 1x, untuk menghapusnya kita dapat lakukan dengan mengganti select * menjadi delete , seperti dibawah :


 delete from [nama_table]  
 WHERE [field] IN (SELECT dupid FROM (SELECT MAX([field]) AS dupid,COUNT(*) AS dupcnt  
 FROM [nama_table]  
 GROUP BY [field ] HAVING COUNT(*) > 1) AS duptable)  


Load comments