MySQL GROUP_CONCAT长度限制引发的一场灾难

GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数。

但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_CONCAT的数量与实际打印GROUP_CONCAT具体值得数量不一致。

在代码排查的过程中Mybatis从数据库拿出来的值始终小于1024个字符,最终解决方法如下:

修改MySQL的一直参数GLOBAL group_concat_max_len;

set GLOBAL group_concat_max_len = 102400;   --默认是1024

时间: 2024-12-09 10:12:56

MySQL GROUP_CONCAT长度限制引发的一场灾难的相关文章

设置mysql group_concat长度

#在MySQL配置文件(my.ini)中默认无该配置项,使用默认值时,值为1024,可在客户端执行下列语句修改: #SET GLOBAL group_concat_max_len = 1024; #该语句执行后重启客户端即可用语句: #show variables like "group_concat_max_len"; #查看到已经修改成功,该语句在执行后,mysql重启前一直有作用,但mysql一旦重启,则会恢复默认的设置值. #要彻底修改,在MySQL配置文件(my.ini)中加

MySQL GROUP_CONCAT()的使用

1. MySQL GROUP_CONCAT() mysql> SELECT pub_id,GROUP_CONCAT(cate_id) -> FROM book_mast -> GROUP BY pub_id; 返回结果:(默认逗号分隔) +--------+-----------------------+| pub_id | GROUP_CONCAT(cate_id) |+--------+-----------------------+| P001 | CA002,CA004 | |

mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格

mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- --------------------- -------------- 1 Al Apple 1 Al Cherry Desired output MemberID MemberName FruitName ----------- -------------- ------------ 1 Al Apple, Cherry

mysql sql长度限制解决

mysql sql长度限制解决 今天发现了一个错误: Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置, 也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败. 于是把mysql的配置文件(my.ini)中的max_allowed_packet = 6M变大, 问题就解决了.

由简单的CMD命令引发的一场学习战斗

想要打开一个软件时,由于桌面没有存放快捷方式,又忘了软件存放在电脑上的哪个角落.脑海里突然闪过一个想法:用CMD自定义软件的打开方式,于是问了度娘.由此,引发了一场停不下来的CMD学习战斗. 爱上CMD,不是一天两天的事情了.一直都很爱,但又是一直都很无奈.因此我这次一定要好好的把对CMD的热爱进行到底.被我摊上了,你就完蛋了. 后续日子,我将会贡献出一大堆的CMD学习过程来与大家分享. 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺

关于Mysql group_concat的应用(把相同ID的VAL用字符‘/‘连接起来)

关于Mysql group_concat的应用 ■事先准备: CREATE TABLE TBL_GRP_CAT ( ID INT, VAL CHAR ); INSERT INTO TBL_GRP_CAT VALUES(1, 'a'); INSERT INTO TBL_GRP_CAT VALUES(1, 'b'); INSERT INTO TBL_GRP_CAT VALUES(1, 'c'); INSERT INTO TBL_GRP_CAT VALUES(2, 'd'); INSERT INTO

mysql中 group_concat长度限制

//这个函数有长度限制,上了多次当.默认长度1024长度. select group_concat(id) from table; 要彻底修改,在MySQL配置文件(my.ini)中加上 group_concat_max_len = -1  # -1为最大值或填入你要的最大长度 #并重启mysql #在客户端执行语句: #show variables like "group_concat_max_len"; #如果为自己修改的值或4294967295(设置为-1时)则修改正确.

由 MySQL server 和 mysql-connector 版本的不匹配引发的一场惊魂

剧情还原 今天原计划给领导演示一个小Demo, 昨天在自己机器上调通OK以后就下班了... 今天上午早会后,领导说 “昨天,我让我们IT同事把新的测试环境搭建好了,XXX 你把要演示的Demo部署到上面,弄好了以后安排个会议室,我们看看...”. 之后,我就赶紧找IT同事确认新环境的信息,由于他有事情要请假,所以简单给我说了下就闪人了:遂留下我一人开启了爬坑之旅... 爬坑开始 从自己机器登录到新环境以后,看了下环境,该装的东西貌似一个都不少...心中暗自喜(IT同事真给力):于是把demo程序

mysql group_concat函数是有长度限制的

在表关联查询中,特别是一对多关系的表查询中,group_concat函数是很有用的一个函数,帮助我们减少对数据库查询的次数,减少服务器的压力. 但是今天使用group_concat函数查询数据库时,发现查询出来的结果,居然少了很多.进过很多步的测试后,并上网百度后,验证了自己的结论,group_concat的长度是有限制的,默认为1024个字符.也就是说字符查询出来的字符串如果超过了1024个字节,将会自动截断. 在不考虑使用其它思路情况下的解决办法: 将将group_concat的长度设计加大