如何选择重复的行(与不同的行相反)?

时间:2013-09-23 05:08:07

标签: mysql sql

我的表中有一个名为application_id的列,它包含像

这样的值
32,
65,
75,
75,
32,
45,
56,
78,
64

我只想获得重复的值

喜欢75,32

我认为它有点与众不同。我不知道怎么办?

2 个答案:

答案 0 :(得分:3)

如果您只想选择application_id,只需使用@Sayonji已建议的查询

SELECT application_id FROM MyTable GROUP BY application_id HAVING count(*) > 1

但是如果要选择所有列,则可以使用子查询来实现此目的:

SELECT DISTINCT * FROM MyTable
WHERE application_id IN
(
   SELECT application_id FROM MyTable
   GROUP BY application_id
   HAVING COUNT(*) > 1
);

或使用自我加入:

SELECT DISTINCT t1.* FROM MyTable t1
JOIN
(
   SELECT application_id FROM MyTable
   GROUP BY application_id
   HAVING COUNT(*) > 1
) t2
ON t1.application_id = t2.application_id;

请参阅this SQLFiddle

答案 1 :(得分:0)

这样的东西
SELECT a_id FROM mytable GROUP BY a_id HAVING count(a_id) > 1