Kejadian mempunyai record ganda dialami pada database cangkirkopi, kami memiliki table kota dengan field ct_id dan ct_name, faktanya adalah terdapat nama kota (ct_name) yang ganda tetapi dengan id yang berbeda. Contoh : ct_id=1, ct_name = Bandung, dan ct_id=2, ct_name=Bandung. Bila kesalahan input data hanya kurang dari 10 record tentu tidak masalah, tetapi kalau dalam jumlah banyak, dan record total jumlahnya ratusan tentu ini akan merepotkan.
Nah Bagaimana cara melihat record yang ganda, berikut ini adalah contoh pada kasus table kota yang kami miliki :
Query melihat record ganda dan jumlah recordnya.
SELECT *, COUNT(*) AS nkuncinya pada "Group By" dan Count(*), jadi bila anda ingin mengecek field dengan nilai ganda, letakan field-fieldnya pada bagian "Group By".
FROM cities
GROUP BY ct_name HAVING n>1
Kemudian, untuk menghapus data record yang ganda tetapi menyisakan 1 record unik, berikut querynya :
DELETE FROM citiesSilahkan sesuaikan nama field yang anda miliki, semoga berguna.
WHERE ct_id IN (SELECT dupid FROM (SELECT MAX(ct_id) AS dupid,COUNT(*) AS dupcnt
FROM cities
GROUP BY ct_name HAVING dupcnt>1) AS duptable)
Comments