工作中我们经常会遇到查询数据表中重复数据的需求,可以用count、group by、having实现,将要查重复的字段进行分组,并计算每个字段出现的次数,最后使用having查询出现次数大于0的数据。

示例SQL如下:

SELECT
	phone,
	count( phone ) 
FROM
	`user` 
GROUP BY
	phone 
HAVING
	count( phone ) > 1

如果想要查询多个列的组合是否重复,那么在GROUP BY子句中包含这些列即可,示例如下:

SELECT
	phone,
	`name`,
	count( * ) 
FROM
	`user` 
GROUP BY
	phone,
	`name`
HAVING
	count( * ) > 1