Có, giả sử bạn có một trường ID duy nhất, bạn có thể xóa tất cả các bản ghi giống nhau ngoại trừ ID, nhưng không có "ID tối thiểu" cho nhóm giá trị của chúng.
Truy vấn mẫu:
DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
Ghi chú:
- Tôi đã thoải mái chọn "Bảng" và "ID" làm tên đại diện
- Danh sách các trường ("Field1, Field2, ...") phải bao gồm tất cả các trường ngoại trừ ID
- Đây có thể là một truy vấn chậm tùy thuộc vào số lượng trường và hàng, tuy nhiên, tôi hy vọng nó sẽ ổn so với các lựa chọn thay thế
CHỈNH SỬA:Trong trường hợp bạn không có chỉ mục duy nhất, đề xuất của tôi là chỉ cần thêm chỉ mục duy nhất tự động tăng dần. Chủ yếu là vì thiết kế đẹp, nhưng cũng vì nó sẽ cho phép bạn chạy truy vấn ở trên.