php - 显示 MySQL 中包含相同值的所有行

标签 php mysql

我有一个 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/

相关文章:

PHP(Codeigniter) 构建数组树分别为数组的孙节点分配键名

MYSQL:仅查找完整字符串,而不查找子集

javascript - foreach 在 laravel 中使用 javascript 循环

php - 如何检查 mysql 列是否不为 NULL?

php - Symfony2.5,长度验证 maxMessage 属性显示带有占位符字符串而不是 "max"值的消息

mysql - 统计JPA中使用 "group by"和 "having"过滤的行数

mysql - MATCH() AGAINST() 不匹配第二个字符串 - MySQL

php - Laravel:检测是否加载了嵌套关系

javascript - 后退按钮背后的逻辑

MySQL - 如何连接至少包含一个字母字符的列