mysql GROUP_CONCAT 内部加 order by 后,后续拼接失败问题

mysql GROUP_CONCAT 可以用来进行分组排序后的可以将多条数据合并成一条数据,并可以进行字符串拼接。

今日在使用时需要对GROUP_CONCAT 内补数据进行拼接排序,字符串拼接时未出现问题,但是加上排序之后就出现了问题。

1.GROUP_CONCAT长度已经进行了设置。

SET GLOBAL group_concat_max_len=40000; 

SET SESSION group_concat_max_len = 102400;

  show variables like 'group_concat_max_len'; 

2.mysql配置文件也已经修改。

group_concat_max_len = 102400

下面复现问题:第一次,没有排序sql

select
      CONCAT('[',GROUP_CONCAT('{"id":"',id,'","image_time":"',image_time ,'","url":"',url,'"}' separator ',') ,']')         images
      from camera_team_image_info where team_id='1'
          and `user_id`='1'
       and is_deleted='0'
    group by merge_id order by create_time desc

查询结果

第二次,加上排序 sql

select
      CONCAT('[',GROUP_CONCAT('{"id":"',id,'","image_time":"',image_time order by image_time ,'","url":"',url,'"}' separator ',') ,']')         images
      from camera_team_image_info where team_id='1'
          and `user_id`='1'
       and is_deleted='0'
    group by merge_id order by create_time desc
查询结果:

发现,结尾处明显缺失部分拼接字符串,查找资料没有找到原因,后来发现是排序字段之后的拼接失效了,找到问题,尝试调整sql,把排序字段放在尾部,取消尾部之后的字符串拼接:

 select
      CONCAT('[',GROUP_CONCAT('{"id":"',id ,'","url":"',url,'","image_time":"',image_time order by image_time separator '"},') ,'"}]')         images
      from camera_team_image_info where team_id='1'
          and `user_id`='1'
       and is_deleted='0'
    group by merge_id order by create_time desc

插叙结果:

可以满足自己的需求。菜鸟一枚,只能用菜鸟专属方法。。。。。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值