【问题标题】:Merge multiple rows into one column将多行合并为一列
【发布时间】:2017-09-08 07:08:16
【问题描述】:

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

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吗?

谢谢

【问题讨论】:

  • select group_concat(concat(langtype, ' = ', desc)) from ... group by code
  • @Rogach 这似乎是一个有效的答案。请照原样发布,以便其他人可以看到此问题已得到解答(也许会详细说明)。
  • 由于示例不完整,我添加了一些细节
  • @devin - 现在更难了。如何对要连接的行进行分组?我按code 列假设,但在您更新后不再是这种情况。
  • 是 =( 那应该是 desc 字符串相似性,但考虑到不同的语言。

标签: mysql merge


【解决方案1】:

是的,这是可能的。像这样的东西应该达到这个效果:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 2020-06-09
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多