Sẽ trả lại tất cả các bản ghi có lỗi:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link AND theTable.size = dups.size
Tôi thích truy vấn con b / c Tôi có thể làm những việc như chọn tất cả trừ truy vấn đầu tiên hoặc cuối cùng. (rất dễ chuyển thành truy vấn xóa sau đó).
Ví dụ:chọn tất cả các bản ghi trùng lặp NGOẠI TRỪ bản ghi có ID tối đa:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size, max(ID) as maxID
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link
AND theTable.size = dups.size
AND theTable.ID <> dups.maxID