GROUP_CONCAT操作及错误 [Err] 1260 - Row * was cut by GROUP_CONCAT() 处理

最近在数据数据处理中用到了GROUP_CONCAT()函数 ,这里简单记录分项一下

query_sql = "SELECT a, b, c, d, e, f, g, h, i "\
                    "FROM table AS p "\
                    "LEFT JOIN ( "\
                    "SELECT j, GROUP_CONCAT(k) AS Item, GROUP_CONCAT(l) AS Check_Type "\
                    "FROM table "\
                    "GROUP BY j) AS i ON p.j = i.j "\
                    "WHERE o = %s"

首先这里记录一下GROUP_CONCAT()函数的使用:
语法group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )

select id, GROUP_CONCAT(DISTINT price order by price desc) from goods group by id

以id分组,把price字段的值去重打印在一行,逗号分隔,按照price倒序排列
遇到了mysql 错误 [Err] 1260 - Row * was cut by GROUP_CONCAT()问题:
是因为GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,
所以如果合并的字段比较多的情况下就会遇到这个问题,
解决问题的办法就是修改它的最大长度限制:

# 在数据查询:SELECT @@global.group_concat_max_len;
# 修改方式一:在mysql 配置文件中group_concat_max_len = 102400 #你要的最大长度
# 修改方式二:SET GLOBAL group_concat_max_len=102400;
#			//会话级
#			SET SESSION group_concat_max_len = 102400;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值