0

例如,我有下一张表(在 MySQL 中)

| a | 1002 |
| b | 1002 |
| c | 1015 |
| a | 1005 |
| b | 1016 |
| a | 1106 |
| d | 1006 |
| a | 1026 |
| f | 1106 |

我想选择重复的对象。

| a | 1002 |
| a | 1106 |    
| a | 1026 | 
| a | 1005 |
| b | 1002 |   
| b | 1016 |

谢谢

4

2 回答 2

0

如果我理解这个问题,您想选择数字列重复的行。一种方法是加入子查询,返回number多次出现的值列表。

SELECT letter, number
FROM myTable A
INNER JOIN (
  SELECT number
  FROM myTable
  GROUP BY number
  HAVING COUNT(*) > 1
) B ON A.number = B.number
于 2013-06-14T15:27:38.130 回答
0

作为替代方案,如果您想要所有重复值的列表,您可以使用group_concat

select col1, group_concat(col2)
from t
group by col1
having count(*) > 1

这不会返回您想要的确切格式。相反,它会返回:

| a | 1002,1106,1026,1005 |
| b | 1002,1016 |   

但你可能会发现它很有用。

于 2013-06-14T15:48:42.567 回答