Group_concat在取聚合的数据的时候是无序的

Group_concat在取聚合的数据的时候是无序的

例如:

        SELECT group_concat(user_name  order by center_code)
        from tr_zhubiao
        where sex_name  = '男'
         limit 10

     SELECT group_concat(user_name)
        from tr_zhubiao
        where sex_name  = '男'
        order by center_code
        limit 10

结果返回的String 是不一定相同的!

按理来说order By都是按照ASCⅡ码表来排序的,为啥还会出现这个问题呢。原因是因为第一个sql是先将用户的编码查出来,然后将聚合的结果按照顺序排列,第二个sql是先进行排列,再进行聚合,聚合的时候其实就已经将排列的顺序又给打散了。

实际应用中,推荐使用的是第一种的用法,因为orderBy是需要遍历全表的,第二种相当于让所有人都排好队,然后选十个。第一种相当于随机选10个然后让10个人排队,从效率上来讲第一种好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值