MySQL GROUP_CONCAT限制解决方案
作用:
GROUP_CONCAT函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即"," ,
如果需要自定义分隔符可以使用 SEPARATOR
如:
SELECT GROUP_CONCAT(name SEPARATOR '_') FROM user
限制:
GROUP_CONCAT 拼接的字符串的长度字节默认长度1024个字节,超过则会被截断。
查询默认长度:
命令
SHOW VARIABLES LIKE 'group_concat_max_len'
操作方法:(如图)
调整长度设置方法:
(1)在MySQL配置文件中加入:
文件:my.ini
追加设置:
group_concat_max_len = 102400
(2)SQL语句:
SET GLOBAL group_concat_max_len = 102400;SET SESSION group_concat_max_len = 102400;
注意:该方法缺点是重启服务后设置失效
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
MySql采用GROUP_CONCAT合并多条数据显示的方法
本文实例讲述了MySql采用GROUP_CONCAT合并多条数据显示的方法,分享给大家供大家参考.具体实现方法如下: 假设有这样一个需求: 1:班级表: id class_name 2:学生表: id name class_id 如果我们要查所有的班级以及每个班级下的学生,你一定会想到这样写法: 复制代码 代码如下: SELECT banji.*, user.name FROM `banji` left join user on banji.id=user.`class` where ban
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
前天在生产环境中遇到一个问题:使用 GROUP_CONCAT 函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题.后面故意重新INSERT了一个字段长度超1024字节的数据,但是navicat能完整展示出来,所以就排除了navicat的问题. 然后想到1024这个熟悉的数字,会不会是C++框架在接收MySQL通过socket传输过来的数据时被处理了呢?于是手工在日志中打印这个字段,发现即使数据长度超过1024字节仍然是可以
-
MySQL中group_concat函数深入理解
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 |
-
mysql利用group_concat()合并多行数据到一行
假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系.假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只显示a表记录行数,则需要把查询name字段得到的多行记录进行合并,可以通过程序实现,但也可直接在sql层完成. 方法: 利用group_concat()方法,参数为需要合并的字段,合并的字段分隔符默认为逗号,可通过参数separator指定,该方法往往配合group by 一起使
-
Mysql的GROUP_CONCAT()函数使用方法
语法: GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val]) 下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据. SQL代码 复制代码 代码如下: CREATE TABLE student_courses ( stude
-
浅谈MySQL中group_concat()函数的排序方法
group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就
-
mysql group_concat()函数用法总结
本文实例讲述了mysql group_concat()函数用法.分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来.要返回哪些列,由函数参数(就是字段名)决定.分组必须有个标准,就是根据group by指定的列进行分组. group_concat函数应该是在内部执行了group by语句,这
-
如何修改Mysql中group_concat的长度限制
在mysql中,有个函数叫"group_concat",平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改 详细说明如下: 用了group_concat后,select里如果使用了limit是不起作用的. 用group_concat连接字段的时候是有长度限制的,并不是有多少连多少.但你可以设置一下. 使用group_concat_max_len系统变量,你可以设置允许的最大
-
mysql的group_concat函数使用示例
MySQL中group_concat函数,完整的语法如下: 复制代码 代码如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 复制代码 代码如下: select * from aa; 复制代码 代码如下: +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 |
-
MySQL统计函数GROUP_CONCAT使用陷阱分析
本文实例分析了MySQL统计函数GROUP_CONCAT使用中的陷阱.分享给大家供大家参考,具体如下: 最近在用MySQL做一些数据的预处理,经常会用到group_concat函数,比如类似下面一条语句 复制代码 代码如下: mysql>select aid,group_concat(bid) from tbl group by aid limit 1; sql语句比较简单,按照aid分组,并且把相应的bid用逗号串起来.这样的句子大家可能都用过,也可能不会出问题,但是如果bid非常多的话,你就
随机推荐
- php实现的中秋博饼游戏之绘制骰子图案功能示例
- Go语言使用组合的方式实现多继承的方法
- 一个关于jqGrid使用的小例子(行按钮)
- jQuery bind事件使用详解
- shiro授权的实现原理
- js中的值类型和引用类型小结 文字说明与实例
- asp.net(c#)下各种进制间的轻松转换(2进制、8进制、10进制、16进制)
- php项目开发中用到的快速排序算法分析
- C# 对象持久化详解
- Win7系统下mysql 5.7.11安装教程详解
- SQL Server中选出指定范围行的SQL语句代码
- C#线程定义和使用方法详解
- jQuery实现菜单感应鼠标滑动动画效果的方法
- javascript使用Dom改变超链接前面文本框的值
- 微信开发 js实现tabs选项卡效果
- Macromedia Flex 制作计算器源码和制作步骤
- Java责任链设计模式
- 深入PHP异步执行的详解
- android ScrollView实现下拉放大头部图片
- Python获取昨天、今天、明天开始、结束时间戳的方法