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;
为什么会这个节日的顺序不一样呢?

0

5个回答

图片说明

0

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

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

0

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

0

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

0

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis按照sql的查询字段顺序来进行映射。
当使用map作为映射的返回的类型时,map无法保证顺序,所以可以使用LinkedHashMap来保证映射的顺序。 即将resultType = “map” 改为 resultType=“java.util.LinkedHashMap” 。此时映射的顺序将按照xml文件中sql语句的查询字段顺序进行顺序映射。同时在bean中也要使用LinkedHashMap来接收。因为hashmap时无法保证顺序...
Mybatis按顺序查询出对应的数据字段方式
今天遇到一个问题,就是写xml文件时,返回的顺序始终不一致,无论我sql语句写的如何好,前端接收到的数据都是乱的。终于,我发现到了原因。 原来我的查询返回resultType = "map"  , 也就是这个map, 打乱了顺序。  因为map 并不保证存入取出顺序一致, 因此,打乱顺序可想而知了。 解决方法:resultType = "map" 改为  resultType="java.u
Mybatis查询语句返回的对象中部分字段为null(空)
sql是正确的,但是商品这个对象只有price(价格),stock(存量)是有值的,其他的都没有. 我自己的解决办法是:不使用resultType(问题很多),而是使用resultMap. 下面是我的应用场景和解决思路. /** * 商品 */ public class Goods { /** * 商品id */ private Integer go...
oracle 反向排序
oracle reverse函数  oracle 提供一个reverse函数,可以实现将一个对象反向转换. 比如: SQL> select reverse('123456') from dual; REVERSE('123456') ----------------- 654321 [@more@] 由于这个函数,是针对数据库内部存储
mybatis查询结果List<Map<String,Object>>应对动态改变字段类型导致转换结果乱码的问题...
问题场景: 查询语句是select * from 某视图...(备注,此处我们为什么不select具体字段,因为我们是为了动态查询字段,方便实施根据不同客户需求增加、修改字段类型和值、删除字段等场景)。 视图中有属性field1,类型是varchar 结果 field1=&quot;字符串类型&quot; 变更field1为number类型 结果 field1=&quot;◆~··◆&quot; 乱码。 -----...
关于mybatis返回map是排序问题
 这样的情况下是无排序的 想要俺着查询的顺序来的话 换成
Mybatis中resultType个别字段获取数据为null
在使用jeestite框架开发时,出现Mybatis中resultType个别字段获取数据为null,其他字段正常。 这是bean中获取不到数据的字段: private String ctBase_ddl; //订单量 private String ctBase_yqphd; //邀请配合度 private String ctBase_dv; // 大V 数据库对应的字段: ctBas
Mybatis查询时间返回客户端字符串
问题:使用Mybatis查询时间,如果不ifnull,那么查询出来的时间是年-月-日 时:分:秒.数字 关键的问题在于后面的.数字,封装成Map数据,返回给客户端,那么客户端显示的数据是long类型数据?   方案:使用ifnull(created, 0)处理时间字段后,查询出来的时间是年-月-日 时:分:秒   如此处理后,封装成Map返回给客户端,那么在客户端显示的时间就是年-月-日
使用mybatis时,若某个字段是纯数字字符串,不指定类型时引发的问题?
条件查询时,不指定jdbcType=VARCHAR,若入参是0012346595时将查不到数据&amp;lt;if test=&quot;filmCode != null and filmCode != ''&quot;&amp;gt; and f.film_code= #{filmCode}&amp;lt;/if&amp;gt;原因:当不指定jdbcType为字符串时,字符串0012346595将会被转换为数值12346595,导致查不到数据正确...
mybatis查询到了数据,但是实体类个别字段为null
今天在做一个简单的查询操作时遇到的坑,折腾了好久好久,有必要记录一下本菜鸡的心理活动 debug单步执行发现查询之后有几个字段没有映射成功,依然为null 而控制台打印的sql语句确实拿到了 想着是不是实体类里面的字段命名不一致,瞪大狗眼看了一万遍也没发现有啥不一样。 又试着在set方法里设断点,发现set方法执行了,但是传进来是空。。灵异了。。 最终的最终,发现mybatis的配置文件里自己...
mybatis字符串匹配数字
做查询遇到一个坑,想用字符串去判断是否等于一个数字,结果一个报错,写法如下<if test="taskIdType != null and taskIdType != '0' "> and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%') </if>正确写法如下<if test="taskIdType != null and t
MyBatis 包含字符串列表查询SQL返回NULL问题的解决
MyBatis中涉及到字符串列表的查询,比如: SELECT max(age) FROM t_users WHERE name in ('zhangsan', 'lisi', 'wangermazi') 一种MyBatis XML写法是: &amp;amp;lt;select id=&amp;quot;findMaxBirthday&amp;quot; resultType=&amp;quot;java.util.Date&amp;quot; &amp;amp;gt; ...
mybatis查询出来的字段的值为null,驼峰字段
mybatis查询出来的数据为null,驼峰字段 昨天遇到奇葩问题。 开发环境一直好好的。 到了测试环境,就是流程跑不通。 3个伙伴排查了3个小时。 终于定位到问题的地方。 数据库的字段明明有值。 bean get的值就是为null。 最后发现,单单词的字段值不为空,多单词下划线链接的字段,值为空。 最后去看配置文件: mybatis: mapper-locatio
PostgreSQL 按照自定义顺序排序
/* 按照指定顺序排序 */ select * from person order by case constellation when '白羊' then 1 when '金牛' then 2 when '双子' then 3 when '巨蟹' then 4 when '狮子' then 5 when '处女' then 6 when '天秤' then 7 whe...
Mybatis下部分字段值无法获取(null)
本博客致力于提供一些开发中常遇到的坑以及解决思路,大家可以多多关注~~~~ 今天在使用mybatis-plus做多表间查询的时候,遇到了一个问题,多表查询时,存在部分字段无法获取到值,但是其它字段却没问题。于是本人尝试单独获取各个表的字段值发现都没问题,最后查阅了资料发现是原来我在表中存在带下划线的字段的原因。 解决之前: 数据库字段 pojo 从上面不难看出我p
mybatis 查询时间戳类型(TIMESTAMP) 回显成时间字符串的问题
直接在数据苦中插入的时候.时间戳类型数据的转换 INSERT INTO  tab(shijian) VALUES(FROM_UNIXTIME(1499409740)); SELECT FROM_UNIXTIME(1499409740)       mybatis在select查询TIMESTAMP类型的时间时,如果resultType=&quot;java.util.HashMap&quot;,返回的ma...
Mybatis返回map集合时,列的顺序与select不一致
&lt;select id="queryPercentByAsset" resultType="java.util.HashMap"&gt; 将Hashmap换成LinkedHashMap即可 &lt;select id="queryPercentByAsset" resultType="java.util.LinkedHashMap"&gt;
mybatis 查询随笔 (经过计算的数字类型一定要转成字符串,不然就会乱码)
CONCAT(sum(if(pp.phone_status=0,pp.count,0)),'(',CAST(ROUND(sum(if(pp.phone_status=0,pp.count,0))/sum(pp.count)*100,2) AS CHAR),'%)') as status0,
java Spring-mybatis 框架-处理字符串到数据库查询int类型
#{uuid,jdbcType=INTEGER}为了不让注入。使用# 尽量少用$ 在后端的数据提交参数没问题的情况下,可是得到的结果与自己通过数据库查询的数据得到的结果不一样的时候。检查自己的字符串是否有问题-开始没写任何类型。通过debug找到是参数类型问题。把#换成了 $类型   对比后发现两者可能会导致注入的问题。后面通过jdbcType 设置类型。可是我要传到数据库的值是Integer...
SSM中mybatis模糊查询数据库有值,控制台为空
使用Mybatis带参查询时,如果没有构建实体类,select中的resultType为hashmap,在controller类里面拿到值之后,如果传进去的值为中文,必须进行转码 username = new String(username.getBytes(“ISO-8859-1”), “UTF-8”); ...
关于Mybatis 查询 查到空数据列的情况
id="getlist" resultType="WordBook"> SELECT a.key_ AS WordBook_KEY , a.value_ AS WordBook_VALUE FROM wordbook a WHERE key_=#{key} 这个是查询 下面是结果 2016-06-13 09:48:26,503 I
Mybatis传参- 被逗号分割的字符串
1. String ids = &quot;1,2,3,4,5,6&quot;,如ids作为参数传递,查询list返回。mybatis用foreach处理并返回。  SELECT * FROM yp_popup_store_info store WHERE store.store_id in &amp;lt;...
错误解决:Mybatis查不到字符串
今天写代码时,凡是字段是字符串字段的,均查出来0个。但打印的时候却没有什么问题,能正常打印中文,也能查到int作为参数的记录事实上还是因为没有指定编码,在数据库的连接字符串中需要指定UTF-8编码解决:原来:spring: datasource: name: test url: jdbc:mysql://127.0.0.1:3306/law现在:spring...
mybatis 下 mysql in查询按照参数顺序输出结果
若是直接 SELECT * FROM project_celiangbuwei where clbwid in ( 7 , 11 , 20 , 4 )  则输出结果为: 4 净胸围 7 净臀围 11 肩宽 20 横裆 使用Field函数排序后: SQL: SELECT * FROM project_celiangbuwei where clbwid in ( 7 , 11
mybatis返回List<Map>造成数据无序
前端自定义报表参数,后台拼接sql;利用mybatis执行sql,由于是动态字段名且别名是中文,返回类型为map;造成传给前端json数据是无序的;查阅资料知道LinkedHashMap是可以代替的,测试后ok。 ...
关于mybatis读取数据库字段text类型时,读出数据为地址,并不是字符串的问题
这种问题属于设计数据库时对排序规则选择不同的原因,将排序规则改成  utf8_general_ci  就OK了,还有一些数据库存不进去中文的原因也有部分是这个原因。
mybatis查询,返回类型为resultType,某些属性值为null
关键字:mybatis resultType  null 原因:返回类型为resultType 时,如果数据库表字段的名称与返回实体对象的名称不同时,会导致返回实体对象中的属性值为null 举例:表格 tb_user    字段 create_time    实体对象 TbUser  属性createTime(如果由generator-mybatis-generator反向生产的话 一
Mybatis批量查询(一)
为了提高代码的执行效率,我们有时需要采用批量查询的查询方法 批量查询之传入参数–数组 mybatis配置如下: &amp;lt;select id=&quot;queryModelInfoAuditMattersByCode&quot; resultMap=&quot;baseMap&quot;&amp;gt; SELECT &amp;lt;include refid=&quot;Base_Column_List&quot;/&amp;gt; FROM `ldp_inf...
Mybatis使用String和list做为查询条件查询结果集
mybatis中会遇到要使用一个String 和一个集合 作为参数 查询结果集,先说一下思路 把String参数放进map,把集合放进map, 如下: String idChar = request.getParameter("materialId"); Map&lt;String, Object&gt; params = new HashMap&lt;String, Object&gt;()...
mybatis用Map返回的字段全变大写的问题
mybatis通常情况都是用javabean作为resultType的对象,但是有时也可以使用Map去接收。 &amp;lt;select id=&quot;execute&quot; parameterType=&quot;String&quot; resultType=&quot;java.util.HashMap&quot;&amp;gt; ${value} &amp;lt;/select&amp;gt;   如果使用Map,返回来的字段名全是大写,处...
关于mybatis中映射对象的String类型的属性为空的解决方法
检查数据库编码是否为utf-8
【736c677c4】Mybatis中使用字符串拼接方式insert到一个clob字段的方法
在对Oracle数据库插入或者更新CLOB字段的时候,直接拼接INSERT INTO和UPDATE语句,会报一个 ora-01704:字符串文件太长 的异常。那是因为oracle的隐式转换机制,即oracle默认把字符串转换成varchar2类型,而这个字符串的长度又比4000大,所以会报ora-01704错误。说得通俗一点,就是两个单引号之间的字符不能超过4000,但是由于业务需求我又必须...
mybatis将参数作为字段查询
今天碰到一个需求,在做一个多站点条件对比某个参数的时候需要将前台传入的参数作为数据库字段查询,在XML文件中使用#{param}时却会报异常,如下 HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceExceptio...
oracle+mybatis查询遇到CHAR类型字段
工作中遇到的: 某一张表A的某个字段B的类型为CHAR(4),往表A中插入一条数据,B字段的值为1,表面上(肉眼)看到B的值为1,但实际上为1加3个空格,会出现如下问题:mybatis的sql中用B字段去做查询条件 B='1'时查不到数据,但直接在数据库(通过工具,如navicat)运行该sql却可以查到数据! 解决办法: 1、查询条件改为TRIM(B)='1'; 2、修改数据库,将B字段的类型改...
Mybatis+PageHelper查询结果排序两种方式
1.使用PageHelper排序(Pagehelper的版本需在5.1.2及以上)&amp;lt;!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --&amp;gt;&amp;lt;dependency&amp;gt;    &amp;lt;groupId&amp;gt;com.github.pagehelper&amp;lt;/groupId&amp;gt;   ...
逆向工程 忽视表中指定的字段
-
mybatis 配置文件顺序 (xml配置一)
配置文件顺序 configuration 配置 --- properties 属性 --- settings 设置 --- typeAliases 类型别名 --- typeHandlers 类型处理器 --- objectFactory 对象工厂 --- plugins 插件 --- environments 环境 --- environment...
百练_2757字符串数组排序问题
POJ2752:字符串数组排序问题 描述 给定一组字符串,按指定的排序方式输出这些字符串。排序可是自然顺序(inc)、自然逆序(dec)、忽略大小写顺序(ncinc)、忽略大小写逆序(ncdec)等。 输入 输入有多行,第一行为一个表明排序方式的字符串见题面,第二行为字符串的数目。 其余各行每行一个字符串,字符串中间可能空格,前后也可能有空格,但前后的空格要忽略。
用mybatis取值,字段赋值错误的问题
博主 在读取数据库的表信息时,出现了不同字段取值对应不上的情况比如下面的字段就是错位置的 ,排查很久发现: BaseResultMap 里的字段对应是错误的。改成了 可以正确读取
myBatis 常见问题(一)查询结果字段为null
问题描述:查询认购单详情&amp;lt;select id=&quot;adminGetDatail&quot; resultMap=&quot;SubscriptionPO&quot; parameterType=&quot;com.money56.ifmp.api.module.bm.vo.ProductSubscriptionVO&quot; &amp;gt; SELECT c.real_name,c.phone,c.idcard_no F...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java课程 数组逆序 python学习顺序