1. 程式人生 > 實用技巧 >坑!!!MySQL之group_concat_max_len

坑!!!MySQL之group_concat_max_len

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

因為預設GROUP_CONCAT函式返回的結果大小被MySQL預設限制為1024(位元組)的長度。

這時就需要修改 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 的大小,不得而知,希望知道大神不吝賜教