欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

MybatisPlus自带的queryWrapper实现时间倒序方式

时间:2022-11-23 09:42:58|栏目:JAVA代码|点击:

MybatisPlus自带queryWrapper时间倒序

queryWrapper.select().orderByDesc("create_time");

使用queryWrapper解决字符串中含数字的排序问题

今天遇到了Oracle数据库字符串(含数字)排序问题,这里记录的是如何用MyBatis-Plus的queryWrapper条件构造器来解决的方法。

造成的原因

  • 数据库字段为varchar类型(若为Number类型则无此问题)
  • 数据库字符串排序是按照顺序一位一位比较的,按照ascII码值比较。如:2比1大,所以12会排在2前面

解决办法

先按字符串长度排序,再按字段排序

关键代码(queryWrapper条件构造器实现形式)

//利用数据库length函数获取字符串长度(这里的code是我数据库中的字段名称)
queryWrapper.orderByAsc("length(code),code");

能这样写的原因是因为mybatis-plus的orderBy里的参数值最终是拼接在sql语句的order by后面的,并不是只能设置为数据库的列名称,因此只需使orderBy方法里面的参数值符合sql中的排序规则即可实现想要的排序结果。

上一篇:Java中lock和tryLock及lockInterruptibly的区别

栏    目:JAVA代码

下一篇:Java Servlet输出中文乱码问题解决方案

本文标题:MybatisPlus自带的queryWrapper实现时间倒序方式

本文地址:http://www.codeinn.net/misctech/219666.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有