在做查詢的時候遇到一個問題,今天分享一下解決方法。
先看一下我想要什么效果。

清單名稱類型要點,后面兩列為清單步驟(外鍵表)
但我並不想讓主表的內容重復那么多遍,於是 distinct去重、子查詢、左右內連接查詢 各種試 都達不到效果。
有朋友跟我說了Oracle中的WM_CONCAT() 函數 可以將多數據合並為一列 ,在MySQL中試了下 沒有這個函數 就搜了一下
然后這里介紹一下Mysql的多數據合並GROUP_CONCAT()函數

通過使用DISTINCT可以排除重復值;如果希望對結果中的值進行排序,可以使用ORDER BY子句
這里我就用不到排序了,就沒有使用。感興趣的可以自己試下
但是這里發現一個問題,合並后發現他是用逗號隔開的,而我的步驟名稱里自己就有逗號句號之類的符號,這該怎么拆分呢?
就用到 SEPARATOR 關鍵字 它是一個字符串值,缺省為一個逗號。
這里 我們發現我並沒有加SEPARATOR關鍵字,默認就是逗號了。找到原因就好辦了,看一下效果

最后附上GROUP_CONCAT()語法
GROUP_CONCAT([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
