Jika Anda ingin menghapus duplikat kota dengan state_id
yang sama (catatan duplikat), Anda dapat melakukannya dengan mengelompokkannya berdasarkan city
dan state_id
dan menggunakan MIN
atau MAX
fungsi:
Sebelum menghapus kueri, tabel Anda terlihat seperti
| ID | STATE_ID | CITY |
------------------------------
| 1 | 1 | city_one |
| 2 | 1 | city_two |
| 3 | 1 | city_one |
| 4 | 1 | city_two |
| 5 | 2 | city_one |
| 6 | 3 | city_three |
| 7 | 3 | city_one |
| 8 | 3 | city_three |
| 9 | 4 | city_four |
| 10 | 4 | city_five |
Anda dapat menggunakan kueri berikut untuk menghapus rekaman duplikat:
DELETE city_table
FROM city_table
LEFT JOIN
(SELECT MIN(id) AS IDs FROM city_table
GROUP BY city,state_id
)A
ON city_table.ID = A.IDs
WHERE A.ids IS NULL;
Setelah menerapkan kueri di atas, tabel Anda akan terlihat seperti:
| ID | STATE_ID | CITY |
------------------------------
| 1 | 1 | city_one |
| 2 | 1 | city_two |
| 5 | 2 | city_one |
| 6 | 3 | city_three |
| 7 | 3 | city_one |
| 9 | 4 | city_four |
| 10 | 4 | city_five |
Lihat SQLFiddle ini
Untuk lebih lanjut, lihat DELETE
Sintaks MySQL.