我有一张这样的表
id name value
1 Ram a
2 John b
3 Ram c
4 Ram d
5 John e
我想要像这样的输出
name value
Ram a,c,d
John b,e
有没有办法执行此查询?
更新:
表格式:
id field1 value field2
1 val1 a null
2 val2 b null
3 val1 c null
4 val2 d null
5 null e val1
5 null f val1
5 null g val2
5 null h val2
输出:
field1 field2 value
val1 null a,c
val2 null b,d
null val1 e,f
null val2 g,h
有没有办法执行此操作?
答案 0 :(得分:5)
您可以使用group_concat
select
name, group_concat(value separator ',') as value
from table_name
group by name
此外,如果您想要订购价值,您可以在order by
中使用group concat
作为
select
name, group_concat(value order by value) as value
from table_name
group by name
答案 1 :(得分:1)
使用此:
SELECT field1, field2, GROUP_CONCAT(value ORDER BY value SEPARATOR ',')
AS value FROM table
GROUP BY field1, field2;
答案 2 :(得分:1)
SELECT name, GROUP_CONCAT(value) AS value FROM my_table group by name
答案 3 :(得分:1)
group_concat
函数可以帮到你:
SELECT name, GROUP_CONCAT(value) AS value
FROM my_table
GROUP BY name
答案 4 :(得分:1)
Mysql GROUP_CONCAT可以帮到你。请参阅此链接中的示例https://www.percona.com/blog/2013/10/22/the-power-of-mysqls-group_concat/
答案 5 :(得分:1)
您必须使用group_concat
select name,group_concat(value) from tablename group by name