mysql - group_concat()函數長度限制問題? 及數據庫修改後程序中沒有生效問題?

1.問題:

        mysql數據庫使用group_concat將多個id組成字符串數組, 查詢結果數據量大 - 內容被截取了!
在這裏插入圖片描述

2.原因:

        mysql內部對這個是有設置的,默認是1024,如果我們需要更大,就需要手工去修改配置文件。


3.解決如下: ( 使用 group_concat_max_len系統變量,你可以設置允許的最大長度。 )

 
小提示: 連接到遠程主機上的MySQL. ( 也可使用SQLYog工具操作. )

mysql  -h主機地址  -u用戶名  -p用戶密碼

 
3.1 通過命令, 來查看group_concat 默認的長度:

show variables like 'group_concat_max_len' 

 
3.2 修改MySQL的配置文件:( 配置後需要重啓MySQL服務 )
文件位置:
                本地配置文件my.ini
                linux在/etc/my.cnf

在[mysqld]下面添加一行:( 必須在其下面, 否則無效 )

#設置你需要允許的最大長度
group_concat_max_len = 102400

#表示採用最大字節數! 
group_concat_max_len=-1

 
3.3 若在生產環境下,不能擅自重啓MySQL服務,則使用sql語句設置:( 自己使用的這種 )

SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len=102400;

注意: 可以通過sql命令臨時修改,但mysql服務再次重啓後會失效!

 
3.4 退出MySQL命令行模式

exit (回車)
4.出現問題?

group_concat_max_len在數據庫修改成功並且執行查詢已沒有限制。但程序調用查詢默認還是1024長度?

重啓服務器即可. ( 先設置, 再重啓! )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章