连接 Mysql 中的字段

Concatenate fields in Mysql

我有一个table这样的

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

有什么方法可以执行这个查询吗?

更新:

Table 格式:

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

有什么办法可以做到吗?

您可以使用group_concat

select
name, group_concat(value separator ',') as value
from table_name
group by name

此外,如果您希望对值进行排序,您可以在 group concat 中使用 order by 作为

select
name, group_concat(value order by value) as value
from table_name
group by name

使用这个:

SELECT field1, field2, GROUP_CONCAT(value ORDER BY value SEPARATOR ',')
AS value FROM table
GROUP BY field1, field2;

使用group_concat()

SELECT name, GROUP_CONCAT(value) AS value FROM my_table group by name

group_concat 函数应该可以为您解决问题:

SELECT   name, GROUP_CONCAT(value) AS value
FROM     my_table
GROUP BY name

Mysql GROUP_CONCAT 可以帮到你。请参阅此 link https://www.percona.com/blog/2013/10/22/the-power-of-mysqls-group_concat/

中的示例

你必须使用group_concat

select name,group_concat(value) from tablename group by name