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長度?
重啓服務器即可. ( 先設置, 再重啓! )