如何group_concat两列

时间:2018-01-02 07:03:03

标签: mysql

我有一个表有两列parent_string和这样的子字符串

id  parent_string             child_string
 1    0|4#festivals$Festiv     NULL
 2    0|4#festivals$Festiv     1|4@5#diwali$Deepavali
 3    0|4#festivals$Festiv     1|4@6#christmas$Christmas
 4    0|8#birthday$Birthday    1|8@9#for-mom$For Mom
 5    0|8#birthday$Birthday    1|8@10#for-dad$For Dad

如果我想在(1,2,3)中选择id,那么

我想要输出concat字符串如下:

0|4#festivals$Festiv~1|4@5#diwali$Deepavali~1|4@6#christmas$Christmas

怎么做?

1 个答案:

答案 0 :(得分:1)

您可以在字段中使用concat_wsgroup concat以及自定义separator ...

示例

select
       concat_ws( '|', parent_string, group_concat( child_string separator '|' ) )
  from table_ame
 group by parent_string

请参阅文档
CONCAT_WS(separator,str1,str2,...)

  • CONCAT_WS()代表Concatenate With Separator,是一个特殊的 形式的CONCAT()。第一个参数是其余部分的分隔符 争论。在字符串之间添加分隔符 级联。分隔符可以是字符串,其余部分也可以 参数。如果分隔符为NULL,则结果为NULL

GROUP_CONCAT(expr)

  • 此函数返回串联非NULL的字符串结果 一组中的值。如果没有非NULL值,则返回NULL