MySQL - 分組連線欄位函式GROUP_CONCAT的使用

襲冷發表於2018-05-17

一、語法

group_concat([DISTINCT] 要連線的欄位 [Order BY ASC/DESC 排序欄位] [Separator '分隔符'])
    該函式返回來自同一個分組的指定欄位的非NULL值的連線起來字串。


二、用法

    準備表和資料如下:

      

    1、以cid分組,把同組的sname欄位值列印在一行,逗號分隔(預設)

SELECT cid, GROUP_CONCAT(sname) from  student group by cid;

      

        注意,cid為1002中,sname為NULL的值沒有參與連線


    2、以cid分組,把同組的sname欄位的值列印在一行,豎線分隔

SELECT cid, GROUP_CONCAT(sname separator '|') from  student group by cid;

      


    3、以cid分組,把同組的sname欄位值去重後列印在一行

SELECT cid, GROUP_CONCAT(distinct sname) from  student group by cid;

      

    4、以cid分組,把同組的sname欄位值排序後列印在一行

SELECT cid, GROUP_CONCAT(sname order by sname desc) from  student group by cid;
      

三、補充

    可以通過group_concat_max_len系統變數設定允許的最大長度

語法:SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
例如:SET GLOBAL group_concat_max_len = 1024;



相關文章