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;