遇到问题:

  项目中有个需求,MySQL中存储的是树状的数据。现在给出一个节点,需要从Mysql数据库中取出这个节点下所有的节点。采用MySQL的函数。

  函数如下:

CREATE DEFINER=`root`@`%` FUNCTION `getMemberChildList`(rootId BIGINT) RETURNS mediumtext CHARSET utf8
BEGIN
DECLARE str VARCHAR(60000) ;
DECLARE cid VARCHAR(60000) ; SET GLOBAL group_concat_max_len=15120;
SET SESSION group_concat_max_len=15120; SET str = '';
SET cid =cast(rootId as CHAR); WHILE cid is not null
DO
SET str= concat(str,',',cid);
SELECT group_concat(member_id) INTO cid from mall.ums_member_grade where FIND_IN_SET(parent_id,cid) > 0;
END WHILE;
RETURN str;
END

   开始,数据量少的时候完全没有问题,随着数据量的增加,出现了查询结果被截断的情况,导致项目报错。

解决方案:

  在排查之后,发现group_concat()函数有个默认值。  

  关于group_concat函数:

  1,group_concat数据量小的时候没什么问题,但是数据量打的时候就有问题了

  2,group_concat:默认可连接的长度是1024;如果已经设置了最大长度,超过这个长度就会被截取至这个长度;

  3,在查询(select)语句中,使用了group_concat之后,limit就会失效;

group_concat_max_len = 5120

    两种方式解决:

  1修改MySQL的配置文件:

#需要设置的长度
group_concat_max_len = 5120

  2、也可以使用sql语句设置:

SET GLOBAL group_concat_max_len=5120;
SET SESSION group_concat_max_len=5120;

最后:

  基础知识还是没有那么扎实,很多函数自己只是处于了解阶段。应该抓紧恶补基础知识。要不然碰到问题只能一次次的试错,或者请教他人。

参考博客:

https://www.cnblogs.com/Steven-shi/p/7106495.html?utm_source=itdadao&utm_medium=referral

  

最新文章

  1. 【Android】 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题
  2. JQuery 滚动轮播
  3. 关于学习javascript的一些建议
  4. struts2文件上传提示信息国际化
  5. POJ2686 Traveling by Stagecoach(状压DP+SPFA)
  6. Codeforces Round #242 (Div. 2) C. Magic Formulas (位异或性质 找规律)
  7. (转)asp.net 高质量缩略图
  8. Oracle字符函数(转换大小写,替换等)
  9. 虚拟化之KVM的安装续篇
  10. 1104--DNA排序
  11. Json安全
  12. VS2012 安装 NPOI (管理NuGet程序包)
  13. centos 终端界面代理设置
  14. 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)
  15. 关于Unity中表面着色器的使用
  16. 各大公司java后端开发面试题
  17. PGSql
  18. pc端样式初始化
  19. android四大组件(一)Activity
  20. ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)

热门文章

  1. 通过Httpclient工具类,实现接口请求
  2. Docker镜像的构建(五)
  3. [转]NopCommerce中的多商店支持:权威指南
  4. vue项目中导出Excel文件功能的前端代码实现
  5. xml 数组 互相转换方法
  6. python代码注释 - python基础入门(4)
  7. 乐字节Java编程语言发展,面向对象和类
  8. 4、2 java 使用es
  9. Django与JS交互的示例代码-django js 获取 python 字典-Django 前后台的数据传递
  10. 【C++札记】new和delete