在作查询的时候遇到一个问题,今天分享一下解决方法。sql
先看一下我想要什么效果。函数
清单名称类型要点,后面两列为清单步骤(外键表)spa
但我并不想让主表的内容重复那么多遍,因而 distinct去重、子查询、左右内链接查询 各类试 都达不到效果。blog
有朋友跟我说了Oracle中的WM_CONCAT() 函数 能够将多数据合并为一列 ,在MySQL中试了下 没有这个函数 就搜了一下排序
而后这里介绍一下Mysql的多数据合并GROUP_CONCAT()函数字符串
经过使用DISTINCT能够排除重复值;若是但愿对结果中的值进行排序,能够使用ORDER BY子句语法
这里我就用不到排序了,就没有使用。感兴趣的能够本身试下方法
可是这里发现一个问题,合并后发现他是用逗号隔开的,而个人步骤名称里本身就有逗号句号之类的符号,这该怎么拆分呢?im
就用到 SEPARATOR 关键字 它是一个字符串值,缺省为一个逗号。d3
这里 咱们发现我并无加SEPARATOR关键字,默认就是逗号了。找到缘由就好办了,看一下效果
最后附上GROUP_CONCAT()语法
GROUP_CONCAT([DISTINCT] 要链接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])