1. 程式人生 > >mysql 查詢結果被 截斷 問題 group_concat

mysql 查詢結果被 截斷 問題 group_concat

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;