今天在彙整資料時,需要多列合併為一欄,查了一下,MySQL 可以使用 GROUP_CONCAT 函數,

例如:現有一資料表A

id value context
 1 A 產品1
 2 A 產品2
 3 B 產品3
 4 C 產品4
 5 D 產品5
 6 D 產品6

要進行篩選,以達到下列資料表

value context
A 產品1,產品2
B 產品3
C 產品4
D 產品5,產品6

SELECT value, GROUP_CONCAT(context) FROM A GROUP BY value;

增加引號

value context
A '產品1','產品2'
B '產品3'
C '產品4'
D '產品5','產品6'

SELECT value, GROUP_CONCAT('''', context. '''') FROM A GROUP BY value;

 

另外需要注意的是 GROUP_CONCAT 的長度是有限制的,預設是1024,如果需增加長度,可至 my.ini 增加 group_concat_max_len = 200000

設置完成後,重新啟動,就可使用

arrow
arrow
    全站熱搜

    souts 發表在 痞客邦 留言(0) 人氣()