SQL是否可以查找具有重复项的记录?

时间:2010-01-13 00:34:22

标签: mysql duplicate-data

我可以使用SQL查询查找两个字段相同的记录吗?也就是说,我可以使用下表并通过比较名称列(并忽略手机)返回1,3(ids)吗?

    ID | Name | Phone

    1  | Bob  | 5555555555
    2  | John | 1234567890
    3  | Bob  | 1515151515
    4  | Tim  | 5555555555

3 个答案:

答案 0 :(得分:10)

要获取多次存在的所有名称,您可以执行此语句:

SELECT Name FROM People GROUP BY Name HAVING COUNT(*)>1;

答案 1 :(得分:2)

要使用GROUP_CONCAT连接重复项“1,3”的ID,请使用{{3}}:

SELECT GROUP_CONCAT( ID SEPARATOR ',' )
FROM Table
GROUP BY Name
HAVING COUNT(*) > 1

答案 2 :(得分:0)

另一种 - 不一定有效 - 这样做的方法是使用自我加入:

SELECT P1.Id, P2.Id
  FROM People P1, People P2
 WHERE P1.Id < P2.Id
   AND P1.Name = P2.Name;

第一个条件确保您只能看到对(1,3)而不是外来对(3,1)或相同的行(1,1),(3,3)。