1、group_concat()有長度限制1024, 需要修改配置group_concat_max_len,如果超過大小會被截斷;
2、group_concat()可以對這個組的值來進行排序再連接成字符串,
eg:GROUP_CONCAT(name ORDER BY id DESC)
3、group_concat()改變分隔符:
GROUP_CONCAT(name SEPARATOR '|||')
4、當你用group_concat的時候請注意,連接起來的字段如果是int型,一定要轉換成char再拼起來,
否則在你執行後(ExecuteScalar或者其它任何執行SQL返回結果的方法)返回的將不是一個逗號隔開的串,
而是byte[]。
GROUP_CONCAT函數用於將多個字符串連接成一個字符串,在拼接成字符串時就會存在拼接長度的問題,mysql 默認的拼接最大長度爲1024 個字節,由於1024個字節會出現不夠用的情況,所以有時需要去根據情況進行修改,方式如下。
1、查看當前mysql group_concat_max_len
進入mysql狀態,輸入:show variables like 'group_concat_max_len';
如果未曾修改會得到下面結果
2、修改mysql group_concat_max_len
a)、如果不方便重啓mysql 可以在mysql狀態通過命令設置,如:
-
SET GLOBAL group_concat_max_len = 102400;
-
-
SET SESSION group_concat_max_len = 102400;
通過方式1查看即可。
注:此種方式在mysql重啓後會讀取配置文件重新設置,會導致設置失效,所以建議依舊要修改配置文件
b)、修改配置文件:my.ini
在[mysqld]下新增配置:group_concat_max_len = 102400
重啓,通過方式1查看即可。
特別的,有時我們並不知需要多大的字節才能滿足需求,此種情況可以考慮不設置最大字節(即採用最大字節數)即在配置文件設置group_concat_max_len=-1