MYSQL中group_concat有长度限制!默认1024

在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,
其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改配置文件。

详细说明如下:

用了group_concat后,select里如果使用了limit是不起作用的.

用group_concat连接字段的时候是有长度限制的,并不是有多少连多少。但你可以设置一下。

使用group_concat_max_len系统变量,你可以设置允许的最大长度。

程序中进行这项操作的语法如下,其中 val 是一个无符号整数:

SET [SESSION | GLOBAL] group_concat_max_len = val;

若已经设置了最大长度,则结果被截至这个最大长度。

在SQLyog中执行 SET GLOBAL group_concat_max_len = 10 后,重新打开SQLyog,设置就会生效。

---------------------------------------------------------------

GROUP_CONCAT将某一字段的值按指定的字符进行累加,系统默认的分隔符是逗号,可以累加的字符长度为1024字节。可以对这些参数进行修改。

1.先举一个简单的例子

select group_concat(f_a) from t_one group by f_b;

按f_b进行分组查询,将每组中的f_a进行累加。

2.修改默认的分隔符

select group_concat(f_a  separator  ‘_‘) from t_one group by f_b;

separator  是一个关键字,后面跟着要进行分隔的字符

3.排序

select group_concat(f_a order by f_a  separator  ‘_‘) from t_one group by f_b;

4.修改默认字符大小

1).在MySQL配置文件中加上

group_concat_max_len = 102400 #你要的最大长度

2).可以简单一点,执行语句,可以设置作用范围

SET GLOBAL group_concat_max_len=102400;

SET SESSION group_concat_max_len=102400;

5.和concat使用

group_concat默认返回的是BLOB大对象,可以使用concat,返回字符串,还可以在返回的内容,在加入其它的数 据。

时间: 2024-10-10 11:09:20

MYSQL中group_concat有长度限制!默认1024的相关文章

MYSQL中group_concat有长度限制!默认1024(转载)

在mysql中,有个函数叫"group_concat",平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改配置文件. 详细说明如下: 用了group_concat后,select里如果使用了limit是不起作用的. 用group_concat连接字段的时候是有长度限制的,并不是有多少连多少.但你可以设置一下. 使用group_concat_max_len系统变量,你可以设置

MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容

本文通过实例介绍了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 |

int(11)最大长度是多少,MySQL中varchar最大长度是多少(转)

int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节. int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示0

MySQL中group_concat函数-和group by配合使用

MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码 收藏代码 select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+

mysql中group_concat函数用法

该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) DISTINCT:去除重复值 expr [,expr ...]:一

mysql中length字符长度函数使用方法

在mysql中length是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符了,与char_length是有一点区别,本文章重点介绍第一个函数. mysql里面的length函数是一个用来获取字符串长度的内置函数.具体用法示例如下: (1)查看某字符串的长度(比如本站网址) SELECT LENGTH('www.111cn.Net'); (2)查询文章表(article)中标题最长的10篇文章 SELECT id,title FROM article ORDER BY LENGTH(

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 中 group_concat()用法

 基本语法:group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator '分隔符']) 初始数据:                  以name分组,将money打印在一行,默认','分隔:      select aa.`name`name , GROUP_CONCAT( money ) money from aa GROUP BY aa.`name` 以name分组,将money打印在一行,用':'分隔 select

mysql中数据类型的长度

这是一篇很全面的博客的网址 http://qimo601.iteye.com/blog/1622368 下图是其中一部分截图,在mysql数据库中新建数据表时有个长度的设置