我有一个 MySQL 数据库:
ID | Name
1 | Bob
2 | James
3 | Jack
4 | Bob
5 | James
我如何返回同名多次出现的所有列的列表,例如,我想返回这个:
1 | Bob
2 | James
4 | Bob
5 | James
我写了一个计数查询:
SELECT Name, COUNT(Name)
AS NumOccurrences
FROM table
GROUP BY Name
HAVING ( COUNT(Name) > 1 )
但这只会返回类似这样的内容:
Bob | 2
James | 2
而我想返回返回的完整行。
非常感谢任何帮助,谢谢。
最佳答案
您可以使用子选择来完成
SELECT * FROM table WHERE Name IN (
SELECT Name FROM table GROUP BY Name HAVING count(*) > 1
)
此外,如果您的区分匹配是多列,您可以使用笛卡尔集:
SELECT * FROM table WHERE (firstName, lastName) IN (
SELECT firstName, lastName FROM table GROUP BY firstName, lastName HAVING count(*) > 1
)
关于php - 显示 MySQL 中包含相同值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797799/