我有一张这样的表:
ref_num name type route
----------------------------------------
1 A W 401
2 B X 401
3 C E 401
3 C E 411
4 D Z 401
5 K W 701
5 K W 991
5 K W 556
5 K W 401
6 L X 401
7 D Y 401
7 D Y 411
7 D Y 680
8 E Z 401
我想要一个像这样的结果:
ref_num name type routes
----------------------------------------
1 A W 401
2 B X 401
3 C E 401,411
4 D Z 401
5 K W 701,991,556,401
6 L X 401
7 D Y 401,411,680
8 E Z 401
如果有人可以给我一个查询示例来获得所需的结果,那将非常感谢
答案 0 :(得分:3)
select ref_num, name, type, group_concat(routes)
from your_table
group by ref_num
在MySQL中,您不必group by
您选择的所有值。其他值可能会随机选择。但如果其他值在一个组中相同,那么您不必担心。 OP的问题就是这种情况。
答案 1 :(得分:3)
您可以将GROUP_CONCAT
与GROUP BY
连接起来,例如:
SELECT ref_num, name, type, GROUP_CONCAT(routes SEPARATOR ', ')
FROM TableNAme
GROUP BY ref_num, name, type
答案 2 :(得分:0)
我认为WM_CONCAT会这样做:
SELECT REF_NUM, NAME, TYPE, WM_CONCAT(ROUTE)
FROM ROUTES
GROUP BY REF_NUM, NAME, TYPE;