使用group_concat時,如果行數太多,可能會報錯:row 20000 was cut by group_concat()
解決方法是修改mysql中的group_concat_max_len,此值大於你要分組的數量即可
1.查看當前mysql group_concat_max_len
mysql> show variables like '%group_concat%'; +----------------------+---------+ | Variable_name | Value | +----------------------+---------+ | group_concat_max_len | 200 | +----------------------+---------+ 1 row in set (0.00 sec)
2.修改group_concat_max_len
a)如果不方便重啟mysql,可以在mysql狀態通過命令設置,如:
SET GLOBAL group_concat_max_len=2000000; SET SESSION group_concat_max_len=2000000;
注:此種方式在mysql重啟后會讀取配置文件重新設置,會導致設置失效,所以建議依舊要修改配置文件
b)修改配置文件,mysql 5.7版本的配置文件為:/etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下新增配置:group_concat_max_len = 2000000
重啟,通過方式1查看即可。
