在開發過程中遇到這樣的一個需求,通過GROUP BY分組歸類后將同屬性的字段進行拼接。
表結構為:
id value 1 a 1 b 1 c 2 a 2 b
需要得到結果:
id value 1 a,b,c 2 a,b
一開始在網上找到的解決辦法是利用SQL中的STUFF方法,但是經過測試發現該方法無法使用,提示STUFF方法不存在的錯誤,猜測可能是MYSQL SERVER版本的問題。由於通過STUFF方法進行拼接的SQL語句過於復雜且暫時找不到STUFF方法不存在的原因,棄用。
之后選擇GROUP_CONCAT方法,具體SQL語句如下:
SELECT id, GROUP_CONCAT(value) value FROM table GROUP BY id
如果需要將不同字段進行拼接,方法如下:
GROUP_CONCAT(attr1,"連接字符的符號",attr2)
如果只是需要將同一條記錄的字段拼接可以使用concat:
select concat(snon,sname,saddress) as 串聯字符串 from stud