坑!!!MySQL之group_concat_max_len


SQL查詢中,會碰到將group by之后的數據拼接成字符串的場景。這時就該GROUP_CONCAT函數出馬了,不得不說,好用是真好用,但是坑也是真坑。

因為默認GROUP_CONCAT函數返回的結果大小被MySQL默認限制為1024(字節)的長度。

查看方式:

show variables like "group_concat_max_len";

這時就需要修改 group_concat_max_len 參數到需要的大小,比如102400,擴大一百倍。修改的方式有兩種:

 方法一:在MySQL的配置文件中加入如下配置(推薦):

group_concat_max_len = 102400

方法二:更簡單的操作方法,執行SQL語句:

SET GLOBAL group_concat_max_len = 102400;

SET SESSION group_concat_max_len = 102400;

ps:該方法缺點是重啟服務后設置失效。只適合沒有權限操作數據庫服務器,但是又必修使用GROUP_CONCAT返回超過1024長度的情況

-----------------------------------------------------------------------我是結束分割線,但是如果你實在無聊,也可以繼續往下看--------------------------------------------------------------------------------------------------------------------------

另外,設置“group_concat_max_len = -1”則為最大值,group_concat_max_len 的最大值為4294967295 (2^32 - 1)字節,一般也用不到。

至於MySQL為什么限制group_concat_max_len 的大小,不得而知,希望知道大神不吝賜教

 


免責聲明!

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



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