MySQL GROUP_CONCAT()函数 -- 字段合并查询

在做查询的时候遇到一个问题,今天分享一下解决方法。

先看一下我想要什么效果。

清单名称类型要点,后面两列为清单步骤(外键表)

但我并不想让主表的内容重复那么多遍,于是 distinct去重、子查询、左右内连接查询 各种试 都达不到效果。

有朋友跟我说了Oracle中的WM_CONCAT() 函数 可以将多数据合并为一列 ,在MySQL中试了下 没有这个函数 就搜了一下

然后这里介绍一下Mysql的多数据合并GROUP_CONCAT()函数

通过使用DISTINCT可以排除重复值;如果希望对结果中的值进行排序,可以使用ORDER BY子句

这里我就用不到排序了,就没有使用。感兴趣的可以自己试下

 但是这里发现一个问题,合并后发现他是用逗号隔开的,而我的步骤名称里自己就有逗号句号之类的符号,这该怎么拆分呢?

就用到 SEPARATOR 关键字 它是一个字符串值,缺省为一个逗号。

这里 我们发现我并没有加SEPARATOR关键字,默认就是逗号了。找到原因就好办了,看一下效果

 

最后附上GROUP_CONCAT()语法

  GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

 

posted @ 2018-12-07 13:41  劉Sir  阅读(2687)  评论(0编辑  收藏  举报