我正在尝试使用mysql数据库中的重复记录。但是,我不想删除记录,只有两列是重复的。我怎样才能找到这些记录?
答案 0 :(得分:10)
你能发布关于表格结构的更多信息吗?你的意思是一些是重复但只有两列?
无论如何,您可以查看GROUP BY
,COUNT
和HAVING
SELECT `duped_field1`, `duped_field2`, COUNT(*) `tot`
FROM `table`
GROUP BY `duped_field1`, `duped_field2`
HAVING `tot` > 1
答案 1 :(得分:3)
查找重复项的一般原则是仅使用group by
和having count(*) > 1
如果您只想知道重复的列值:
select col1, col2
from table
group by col1, col2
having count(*) > 1
但是,如果您想查看两列重复的所有字段:
select t.*
from @tbl t
where exists (select *
from @tbl d
where d.col1 = t.col1 and d.col2 = t.col2
group by d.col1
having COUNT(*) > 1)