qq_36752749
钱某
采纳率100%
2018-09-20 10:07

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

20
已采纳

下图是后台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条回答

  • qq_36752749 钱某 3年前

    图片说明

    点赞 评论 复制链接分享
  • qq_36752749 钱某 3年前

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

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前

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

    点赞 评论 复制链接分享
  • zhaomin_g _zming 3年前

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

    点赞 评论 复制链接分享
  • liuade 艾德 3年前

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

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

    点赞 评论 复制链接分享

相关推荐