利用GROUP_CONCAT和GROUP BY實現字段拼接


在開發過程中遇到這樣的一個需求,通過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


免責聲明!

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



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