例如,我有下一张表(在 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 |
谢谢
例如,我有下一张表(在 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 |
谢谢
如果我理解这个问题,您想选择数字列重复的行。一种方法是加入子查询,返回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
作为替代方案,如果您想要所有重复值的列表,您可以使用group_concat
:
select col1, group_concat(col2)
from t
group by col1
having count(*) > 1
这不会返回您想要的确切格式。相反,它会返回:
| a | 1002,1106,1026,1005 |
| b | 1002,1016 |
但你可能会发现它很有用。