假设我有很多专栏。如果两列匹配且完全相同,则它们是重复的。

ID | title | link | size | author

假设两行或更多行的链接和大小相似,则这些行是重复的。
我该如何把这些重复的文件整理成一个清单并加以处理呢?

最佳答案

将返回所有具有重复数据的记录:

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

。。
示例:选择除具有最大ID的记录外的所有重复记录:
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

10-05 19:28