当前位置:首页 > 数据库 > mysql 错误Row 349 was cut by GROUP

mysql 错误Row 349 was cut by GROUP

2022年09月16日 17:07:07数据库4

本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2008/12/mysql-trap-of-group-concat/

最近在用MySQL做一些数据的预处理,经常会用到group_concat函数,比如类似下面一条语句

mysql>select aid,group_concat(bid) from tbl group by aid limit 1;

sql语句比较简单,按照aid分组,并且把相应的bid用逗号串起来。这样的句子大家可能都用过,也可能不会出问题,但是如果bid非常多的话,你就要小心了,比如下面的提示信息:

Query OK, XXX rows affected, 1 warning (3 min 45.12 sec)

怎么会有警告呢,打出来看看:

mysql> show warnings;
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1260 | 1 line(s) were cut by GROUP_CONCAT()    |
+---------+------+-----------------------------------------+

居然被GROUP_CONCAT截断了我的结果,查了一下手册,原来GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你可以通过下面的语句获得:

mysql> SELECT @@global.group_concat_max_len;
+-------------------------------+
| @@global.group_concat_max_len |
+-------------------------------+
|                      1024     |
+-------------------------------+

1024这就是一般MySQL系统默认的最大长度,如果你的bid串起来大于这个就会出问题,好在有解决的办法:

1.在MySQL配置文件中加上

group_concat_max_len = 102400 #你要的最大长度

2.可以简单一点,执行语句:

mysql> SET GLOBAL group_concat_max_len=102400;
Query OK, 0 rows affected (0.01 sec)

再执行group_concat语句就不会出问题了,另外手册上还给出了group_concat的详细用法,给个示例你就明白了:

mysql>select aid,group_concat(bid order by bid separator ',') as bid_str from tbl group by aid;

还可以排序和设置分隔符,功能强大。

作者:LX_96
来源链接:https://blog.csdn.net/LX_96/article/details/52670566

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/41953.html

分享给朋友:

“mysql 错误Row 349 was cut by GROUP” 的相关文章

BUG  You have an error in your SQL syntax; check

BUG You have an error in your SQL syntax; check

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server...

JDBC工具类(DButil)

package lesson11; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sq...

MySQL事务和锁

MySQL事务和锁

1.事务 1.什么是事务? 事务: 要么全部成功,要么全部失败 事务是数据库管理系统(DBMS)执行过程中的一个 逻辑单位 ,由一个 有限的数据库操作序列 组成。 逻辑单位:最小的操作单位,不可再分割。 有限的数据库操作序列:...

审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容

对DBA(数据库管理员)而言,审计就是记录数据库中正在作什么的过程。 审计文件的作用 审计功能把用户对数据库的所有操作自动记录下来,放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的...

数据库管理员(DBA)的定义及职责

数据库管理员(DBA)是从事管理和维护数据库管理系统的相关人员的统称 主要职责: 1)决定数据库中的信息内容和结构 2)决定数据库的存储结构和存取策略 3)定义数据库的安全性要求和完整性约束 4)监控数据库的运行的使用 5)数据库的改进和重组,甚至重构...

数据库系统和数据库管理系统的定义以及数据库管理系统的作用

数据库系统(DBS)的组成 是由数据库,数据库管理系统(及其应用开发工具),应用程序和数据库管理员组成的存储,管理,处理和维护数据的系统。 是指一个计算机存储记录信息的系统,从管理层观点来看,数据库系统有四个主要部件构成,硬件,软件,人员和数据, 硬件是...

性能优化|深入理解mysql索引数据结构与算法

性能优化|深入理解mysql索引数据结构与算法

什么是索引? 在mysql中,索引就是帮助mysql快速找到某条数据的一种数据结构,它是排好序的,独立于mysql表数据之外的。 索引数据结构分为哪几种 二叉树、红黑树、Hash表、B树。 在这里我们主要介绍hash表和B树...

泥瓦匠进阶:连接池原理设计并不难

泥瓦匠进阶:连接池原理设计并不难

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢!目录连接连接池产生原因连接池实现原理小结TEMPERANCE:Eat not to dullness;drink not to elevation. 节制:食不过饱...

备战BAT|不会优化索引查询怎么办?学会这个法则无敌了!

备战BAT|不会优化索引查询怎么办?学会这个法则无敌了!

程序员日常 程序员日常应该与DBA打交道应该会很多,因为他会时不时的给你抛个慢sql,让你去优化。 可是对于刚处在新手村的你来说,这无疑是一个大难题,因为自己根本不知道如何去优化索引,这可怎么办呢? 不过不用怕,今天你如果学会了我的这篇...

解决方案:如何防止数据重复插入?

解决方案:如何防止数据重复插入?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 为啥要解决数据重复插入? 解决方案实战 可落地小总结 一、为啥要解决数据重复插入? 问...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。