mysql GROUP_CONCAT 函数使用 以及注意事项
不就是钱嘛,说得谁不缺似的。
GROUP_CONCAT 使用方法
eg:
SELECT GROUP_CONCAT(`User` SEPARATOR '*') FROM `user`
结果会以*连接显示,默认是 逗号
在进行特殊查询的语句中,无意中使用到了,group_concat 函数,开始以为感觉有这个函数挺好的,但是使用一段时间,发现和数据出现了问题,然后追踪原因,才发现group_concat 函数有点坑,
自动截取,只能保留1024字符,所以如果你分组的数据查询的长度过长,就会自动截取,结果让你意向不到,还不知道出现的原因是什么。
(在utf-8字符集中 一个汉字三个字节)
(在gbk字符集中 一个汉字2个字节)
show variables likle "group_concat_max_len" 就可以查到当前的长度
如果想改变其值,那么就应该进行相关的设置,全局或者session 当中进行设置
SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len=102400;
进行设置 如图