我可以使用SQL查询查找两个字段相同的记录吗?也就是说,我可以使用下表并通过比较名称列(并忽略手机)返回1,3(ids)吗?
ID | Name | Phone 1 | Bob | 5555555555 2 | John | 1234567890 3 | Bob | 1515151515 4 | Tim | 5555555555
答案 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)。