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

目录
  • MybatisPlus自带queryWrapper时间倒序
  • 使用queryWrapper解决字符串中含数字的排序问题
    • 造成的原因
    • 解决办法

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中的排序规则即可实现想要的排序结果。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MybatisPlus使用queryWrapper如何实现复杂查询

    目录 使用queryWrapper实现复杂查询 自定义的queryWrapper实现查询 声明提要 核心代码 使用queryWrapper实现复杂查询 // mp实现负责查询操作 @Test public void testSelectQuery(){ //1,创建QueryWrapper对象 QueryWrapper<User> wrapper = new QueryWrapper<>(); // 2,通过QueryWrapper设置条件 // ge大于等于 gt大于 le小于等

  • Mybatis Plus QueryWrapper复合用法详解

    目录 QueryWrapper复合用法 使用QueryWrapper小结 mybatisplus自定义分页查询 其中ew.customSqlSegment QueryWrapper 设置参数几种格式 有关queryWrapper使用or条件时 QueryWrapper复合用法 Mybatis Plus作为一个强大的msql插件,简化了DAO许多操作,使得我们的代码看上去更加优雅一些: 这里主要记录一下QueryWrapper的复杂查询用法 LambdaQueryWrapper<T> query

  • Mybatis-Plus根据时间段去查询数据的实现示例

    业务需求:在前端界面选择开始时间.结束时间,后台根据拿到的开始.结束时间去数据库中查询该段时间的数据集返回给前端界面. 1.前端我使用的是elementUI和vue框架,最好是在前端界面进行一个简单的校验规则,对比一下开始时间和结束时间的大小,校验的代码很简单,直接在触发查询按钮的函数前面加入校验即可.代码如下: if(this.StafPsnClctDetlDFormQuery.startTime >= this.StafPsnClctDetlDFormQuery.endTime){ this

  • mybatis-plus QueryWrapper自定义查询条件的实现

    mybatis-plus框架功能很强大,把很多功能都集成了,比如自动生成代码结构,mybatis crud封装,分页,动态数据源等等,附上官网链接https://mp.baomidou.com/,github上有代码例子,国内小伙伴推荐码云https://gitee.com/baomidou/mybatis-plus.  但是,其中还是有些小坑,文档也没有涉及的很全面,碰到问题,百度或者发issue,能力强的还是直接看源码好,一切答案都在源码中. 版本推荐用3.1.0,3.1.1及以上版本有bu

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

    目录 MybatisPlus自带queryWrapper时间倒序 使用queryWrapper解决字符串中含数字的排序问题 造成的原因 解决办法 MybatisPlus自带queryWrapper时间倒序 queryWrapper.select().orderByDesc("create_time"); 使用queryWrapper解决字符串中含数字的排序问题 今天遇到了Oracle数据库字符串(含数字)排序问题,这里记录的是如何用MyBatis-Plus的queryWrapper条件

  • mybatis-plus自带QueryWrapper自定义sql实现复杂查询实例详解

    目录 常用写法 自定义sql 补充: 查询条件中使用函数apply 补充: 末尾sql追加last 补充:排序 补充:Mybatis-Plus QueryWrapper +sql自定义查询 总结 常用写法 xxxDO=实体类, 相当于: select name, id from xxx group by name where delete_flag = 0 and status = 0 LambdaQueryWrapper<xxxDO> queryWrapper = Wrappers.lamb

  • MyBatis-Plus 修改和添加自动填充时间方式

    MyBatis-Plus 修改和添加自动填充时间 数据库字段设置: `valid_verify_time` datetime DEFAULT NULL COMMENT '有效性审核时间', 实体类设置: @JsonSerialize:序列化 @JsonDeserialize:反序列化 LocalDateTimeSerializer:JDK时间序列化规则 @ApiModelProperty(value = "有效性审核时间") @TableField(fill = FieldFill.U

  • 关于mybatis-plus逻辑删除自动填充更新时间的问题

    目录 前言 问题发现 寻找原因 解决方法 方法一 方法二 补充写法 前言 mybatis-plus是对mybatis的增强,mybatis-plus更像是面向对象编程,数据库基本CRUD的操作可以不用手动编写SQL语句,大大提高了开发的效率. mybatis-plus有一个扩展功能:自动填充.此功能常见的应用场景为,插入数据的时候自动添加创建时间.创建人.修改时间.修改人.删除标记.通过实现MetaObjectHandler接口,重写insertFill.updateFill方法,当我们插入和修

  • Mybatis-plus动态条件查询QueryWrapper的使用案例

    目录 一.queryWrapper介绍 二.环境搭建 1.创建数据库表并添加几条数据: 2.创建Springboot项目 三.queryWrapper示例 1.案例一:根据name模糊查看未删除的用户列表信息 2.案例二:查看姓李的并且邮箱不为空的用户列表 3.案例三:年龄范围查询(20-30之间的) 4.案例四:根据createTime查看当日的用户列表 5.案例五:查看某个时间段内的用户列表 6.案例六:查询姓李的并且邮箱不为空或者是年龄大于16的用户 7.案例七:查询id为1,2,3的用户

  • springboot中使用mybatisplus自带插件实现分页的示例代码

    目录 springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 2.添加MybatisPlusConfig配置类 3.测试分页 springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifa

  • python查找指定文件夹下所有文件并按修改时间倒序排列的方法

    代码如下: import os, glob, time def search_all_files_return_by_time_reversed(path, reverse=True): return sorted(glob.glob(os.path.join(path, '*')), key=lambda x: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(x))), reverse=revers

  • 关于使用Mybatisplus自带的selectById和insert方法时的一些问题

    一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题 1.selectById的问题 (1).表的主键列名不是id时 查询不到数据,因为Mybatisplus自动生成的sql语句where后面拼接的是where null = ? 这就表示表的主键列名的名字不是id,而Mybatisplus默认的是使用id为主键名的 (2).解决方法 @Id @TableId("commodity_id") @Column("commodity_id&qu

  • ASP调用带参数存储过程的几种方式

    ASP调用带参数存储过程的几种方式     选择自 hxfwsk 的 Blog   关键字   存储过程  出处 作者: 讨饭猫 ASP调用带参数存储过程的几种方式 最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open someDSN  Connection

  • php实现用已经过去多长时间的方式显示时间

    本文实例讲述了php用已经过去多长时间的方式显示时间的方法.分享给大家供大家参考.具体如下: 这里以一种可读性比较好的方式显示已经过去多长时间,比如:距离现在10秒,距离现在1天等等. function time_is_older_than($t, $check_time){ $t = strtolower($t); $time_type = substr(preg_replace('/[^a-z]/', '', $t), 0, 1); $val = intval(preg_replace('/

随机推荐