将多行合并为一列

时间:2017-09-08 07:08:16

标签: mysql merge

我正在尝试在一个列中合并不同的旧值。 我有这张桌子

id  code    langtype    desc        duration            
232 1104466 1           IT text     10
233 1104466 2           EN text     10
234 1104466 6           other desc  10
235 1104466 1           Other IT text(different row) 10
236 1104466 2           Other EN text(same row of previous) 10

我想获得这样的结果

id  code    desc                                                duration
232 1104466 “IT” = “IT TEXT”, EN=”EN TEXT”, “ES”=”Other desc”   10

可能是mysql吗?

谢谢

1 个答案:

答案 0 :(得分:1)

是的,有可能。这样的事情应该达到这个效果:

select group_concat(concat(langtype, ' = ', desc))
from table
group by code

这里我们首先形成一个从每一行(concat(langtype, ' = ', desc))中提取的值,然后为每个分组行(group_concat)连接它。您可以更改分隔符,或在需要的位置添加引号 - 查看GROUP_CONCATCONCAT文档。