钱某
2018-09-20 10:07
采纳率: 100%
浏览 1.5k
已采纳

Mybatis查询的字符串字段的顺序有些是逆序

下图是后台mybatis的返回值

图片说明

下图是数据库的查询结果

图片说明

下面是sql语句

     SELECT COUNT(1) as count, mc.calendar_year_month as calendarTime ,
    mc.calendar_month as calendarMonth,
    group_concat(mc.calendar_name) as calendarNames
    FROM kbpos_marketing.marketing_calendar mc
    WHERE mc.calendar_year_month <![CDATA[ >= ]]> #{beginDate}
    AND mc.calendar_year_month <![CDATA[ <= ]]> #{endDate} AND mc.delete_flag=0
    GROUP BY mc.calendar_year_month,mc.calendar_month
    ORDER BY mc.calendar_year_month,mc.calendar_month;

这个字段是string类型,数据库中也是字符串类型
private String calendarNames;
为什么会这个节日的顺序不一样呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 钱某 2018-09-21 09:44
    已采纳

    图片说明

    点赞 打赏 评论
  • 艾德 2018-09-20 10:20

    用子查询先order by,再group by ,顺序应该就一致了。

    没有说两句同样的sql执行结果一定会一样

    点赞 打赏 评论
  • _zming 2018-09-20 10:45

    这个跟mybatis没关系,你试试用sql去查看下,mybatis可以开启debug模式打印sql,你用那个sql查看看

    点赞 打赏 评论
  • 因为你ORDER BY mc.calendar_year_month,mc.calendar_month;的是年月,而不是名字,所以它是无序的,顺序随机。
    而且实际上中文排序本身对于老外写的程序来说就勉为其难。老外懂重音字么?你说重阳节的重是按照Chong参与排序还是Zhong排序?这可一个在前一个在后,差别大了。

    点赞 打赏 评论
  • 钱某 2018-09-21 09:41

    我知道结果了各位,是因为group_concat排序,不一定是根据表中顺序来的,自己手动在group_concat(order by)里面加个order by就可以了。

    点赞 打赏 评论

相关推荐