在表中查找具有相同值的列的条目

时间:2014-11-16 16:06:12

标签: mysql

标题有点不对,我可以在这里解释得更好。 假设我有一个像这样的MySQL表:

的MySQL>选择*来自人;

+------+---------------+
| name | number        |
+------+---------------+
| John |        100000 |
| Alex |        200000 |
| Tim  |        500000 |
| Alice|        100000 |
| Peter|        500000 |
+------+---------------+

现在我想要一个查询,它返回具有相同编号的人的姓名,即,对于这个表,我会查询返回John和Alice(他们有相同的数字,100000)和Tim和Peter (相同数字500000)

2 个答案:

答案 0 :(得分:2)

尝试自我加入,如下所示:

SELECT p1.name
FROM people p1 INNER JOIN people p2
ON p1.number = p2.number
WHERE p1.name != p2.name

答案 1 :(得分:1)

您可以通过汇总数字列并使用group_concat()来完成此操作。 having子句仅选择具有多个名称的情况:

select number, group_concat(name) as names
from table t
group by number
having count(*) > 1;