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 '分隔符'])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM