当前位置: 首页 > news >正文

工作记录------数据库group_concat函数长度问题

工作记录------group_concat函数长度问题

背景:页面在数据展示时,报错,错误显示:String index out of range: -1

异常信息

java.lang.StringIndexOutOfBoundsException: String index out of range: -1at java.lang.String.substring(String.java:1967)

意味着字符串在进行截取时,发生了数组越界行为,越界的数值为-1.

经过代码定位:

setBean.setName(name[n].substring(0, name[n].indexOf("}")));

是一个简单的字符串截取。这个字符串的值来源与数据库查询,在数据库查询时,使用group_concat函数进行组装的字符串。

GROUP_CONCAT( DISTINCT CONCAT(desc, '}', code) SEPARATOR '{' ) as name,

字段desc与字段code拼接,再通过GROUP_CONCAT()函数,将满足条件的所有值拼接成一列字符串,每一列的值通过{作为分隔符

按此逻辑,必会存在}符号。

发现

在数据库中执行sql,发现一部分字符串结果长度缺失。显示的数据不完整。

结论

当时经过字符串长度进行对比,发现由于数据量特别大,只有字符串特别长的才会出现字段缺失的情况,怀疑group_concat()函数存在长度限制。
执行以下sql语句,查看group_concat()函数的最大长度限制,发现是1024。

show variables LIKE "group_concat_max_len";
SELECT @@global.group_concat_max_len;

设置最大长度语句

SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len=102400;   

一个全局最大长度,一个会话级别最大长度。
执行过后,问题得到解决。

http://www.lryc.cn/news/6255.html

相关文章:

  • Python基础语法
  • windows环境下安装Nginx及常用操作命令
  • python excel数据处理?
  • Hudi-集成Flink
  • 重新认识 React Hooks useContext
  • 数据库(2)--加深对统计查询的理解,熟练使用聚合函数
  • stm32f407探索者开发板(十五)——NVIC中断优先级管理
  • 【Azure 架构师学习笔记】-Azure Logic Apps(6)- Logic Apps调用ADF
  • python随机获取列表中某一元素
  • Nacos微服务笔记
  • MAC文件误删怎么办?mac数据恢复,亲测很好用的方法
  • 机械革命z2黑苹果改造计划第二番-MacOS实用软件渗透工具
  • 【LeetCode】每日一题(4)
  • Linux内核移植:内核的启动过程分析、启动配置与rootfs必要文件
  • 【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代
  • AXI-Stream 学习笔记
  • 【Linux】程序进程地址空间
  • 电压放大器在液滴微流控芯片的功能研究中的应用
  • Linux操作系统学习(进程地址空间)
  • 【排序】快速排序实现
  • YOLOv5/v7 Flask Web 车牌识别 | YOLOv7 + EasyOCR 实现车牌识别
  • 【Opencv实战】几十年前的Vlog火了:黑白老照片如何上色?这黑科技操作一定要知道,复原度超高,竟美的出奇~(图像修复神级代码)
  • React源码分析(一)Fiber
  • 小樽 C++指针—— (壹) 指针变量
  • java 代码块 万字详解
  • 杂项-图片隐写
  • 【高性价比】初学者入门吉他值得推荐购买的民谣单板吉他品牌—VEAZEN费森吉他
  • 2023年浙江交安安全员考试题库及答案
  • 【新】华为OD机试 - 跳格子(Python)
  • 乡村能做社区团购吗?怎么做?我走访调查后发现机会很大