MYSQL中group_concat有長度限制!默認1024

MySQL提供的group_concat函數可以拼接某個字段值成字符串,如 select group_concat(user_name) from sys_user,默認的分隔符是 逗號,即"," ,如果需要自定義分隔符可以使用 SEPARATOR

如:select group_concat(user_name SEPARATOR '_') ?from sys_user

但是如果?user_name ?拼接的字符串的長度字節超過1024 則會被截斷。

通過命令 "show variables like 'group_concat_max_len' " 來查看group_concat 默認的長度:

mysql> show variables like 'group_concat_max_len';

+----------------------+-------+

| Variable_name | Value |

+----------------------+-------+

| group_concat_max_len | 1024 |

+----------------------+-------+

1 row in set

在MySQL配置文件中添加配置:group_concat_max_len = -1 ?(-1為最大值或根據實際需求設置長度),配置后需要重啟MySQL服務,查看如下所示:

mysql> show variables like 'group_concat_max_len';

+----------------------+------------+

| Variable_name | Value |

+----------------------+------------+

| group_concat_max_len | 4294967295 |

+----------------------+------------+

1 row in set

如果是生產環境下,不能擅自重啟MySQL服務,則可以通過語句設置group_concat的作用范圍,如:

SET GLOBAL group_concat_max_len=-1;

SET SESSION group_concat_max_len=-1;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容