转:http://blog.csdn.net/wangyonglin1123/article/details/51744834
MySQL的 group_concat 函数默认返回1024个字节长度,超过长度的会被截断。最近程序中就遇到这个问题了。
通过如下命令可以查看到当前mysql系统的参数:
mysql> show variables like "%concat%";
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| group_concat_max_len | 1024 |
+----------------------+-------+
1 row in set (0.00 sec)
2. 有两个方法可以设置group_concat_max_len的值
(1) 在 /etc/my.cnf 中的[mysqld]加上group_concat_max_len = 1024000,需要重启mysql才能生效
(2) 在命令行下输入:
SET GLOBAL group_concat_max_len=1024000;
或者 SET SESSION group_concat_max_len=1024000;
GLOBAL 是对全局生效的,而SESSION是对当前会话有效。需要有管理员权限才可以操作GLOBAL哦!!!
1024指的是字节哦
如下面两条sql:
SELECT sales_no bizNo,b.merchandise_no FROM vip_sales.sales a,vip_sales.merchandise b,vip_sales.sales_merchandise_rel c WHERE a.id=c.sales_id AND b.id=c.m_id AND a.is_deleted=0 AND b.is_deleted=0 AND c.is_deleted=0 AND a.sales_no=2016056141
和
SELECT sales_no bizNo ,GROUP_CONCAT(merchandise_no ORDER BY merchandise_no ASC SEPARATOR ',') AS merchandise_no FROM vip_sales.sales a,vip_sales.merchandise b,vip_sales.sales_merchandise_rel c WHERE a.id=c.sales_id AND b.id=c.m_id AND a.is_deleted=0 AND b.is_deleted=0 AND c.is_deleted=0 AND a.sales_no=2016056141
第一条sql查出有355行,第二条sql查出结果后,通过“,”分隔出来,只有114行。
这种做法是一种坑,莫踩!!
相关推荐
GROUP_CONCAT 拼接的字符串的长度字节默认长度1024个字节,超过则会被截断。 查询默认长度: 命令 SHOW VARIABLES LIKE 'group_concat_max_len' 操作方法:(如图) 调整长度设置方法: (1)在MySQL配置文件中...
【GROUP_CONCAT】使用之MySQL官方文档翻译
wm_concat函数在oracle 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟
wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/
本文通过实例介绍了MySQL中的group_concat函数的使用方法,需要的朋友可以适当参考下
本文实例讲述了mysql group_concat()函数用法。分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。比较抽象,难以理解。 通俗点理解,其实是...
在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改 ...
Oracle 11g之后取消了wm_concat函数,12C及以后版本需要使用的话,需要自定义新建这个函数,提供DDL给需要用到的兄弟们。
oracle 9i 实现wm_concat函数 进行一列多行合并,之间使用,分割
重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件
解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。 简单来说,用PL/SQL执行下一下几个脚本就可以了。 特别要注意:PL/SQL登录时,要...
1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus -logon sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 如果执行结果报错,说找不...
Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
MySQL中group_concat函数,完整的语法如下: 代码如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]) 基本查询 代码如下:select * from aa; 代码如下:+——+——+|...
大家用oracle数据库里面的wmsys.wm_concat函数有没有遇见过字符串缓冲区太小的情况? 针对这种情况我写了个自定义聚合函数 是clob版的。
Oracle新版中不支持 WM_CONCAT的处理方法,直接创建一个自定义函数代替
前几天在项目中遇到一个问题,使用 GROUP_CONCAT 函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后来查找出原因,解决方法大家跟随脚本之家小编...