Springboot Mybatis 自定义顺序排序查询,指定某个字段

您所在的位置:网站首页 mongodb精准查询 Springboot Mybatis 自定义顺序排序查询,指定某个字段

Springboot Mybatis 自定义顺序排序查询,指定某个字段

2023-07-02 22:12| 来源: 网络整理| 查看: 265

前言

与本文无关

 "我进去了"  .......

正文

今天要讲些什么? 

其实很简单,就是查询数据的时候,想根据自己指定的字段的自定义顺序,做排序查询数据。

本篇文章会讲到的几个点 :

1. 单纯sql 怎么实现 排序2. 单纯sql 怎么实现 自定义排序 3. 结合java ,怎么排序4. 结合mybatis 怎么把 第2点的 排序sql 用起来  

讲的过程,可能会不按照顺序。

开搞

先看示例表 :  

product 产品表

示例数据:  

排序, order by  asc 或者 order by  desc  很简单 

 比如 :  

SELECT * FROM  product  ORDER BY id DESC ;

那么如果有个需求,说不能按照id排序,需要按照产品名称 name 排序, 阁下又该如何应对呢?

比如说就是指定了 这个固定的顺序 :

 首先比较常规的方式 :  

 ① 加 sort字段 order by sort

 ②  加个顺序配置表 关联表查询

这两个方法,对不起,太常规了,这一篇不说。

我们现在的要求再严格一点, 不准你动表结构这些。

怎么搞? 

使用 ORDER BY FIELD

示例:

  SELECT  *  FROM  product  ORDER BY FIELD(NAME,'大饼','书','棋','墨','笔','纸');

sql方面这样搞暂且OK。 

那么如果我说的是 我们现在是写功能需求, 用的就是java springboot mybatis 这些, 怎么去解决自定义顺序?

① 正常查出数据,然后循环变量,根据产品名称洗一遍数据。

常规操作,不介绍。

②通过我们平时经常使用的mybatis 也就是传参,然后执行sql查询实现。

也就是执行这个sql:

SELECT *     FROM  product     ORDER BY FIELD(NAME,'大饼','书','棋','墨','笔','纸');

简单写下,mapper :  

/** * @author JCccc */ @Mapper public interface ProductMapper { List queryProductList(@Param("nameSortList") List regularNameSortList); }

mapper.xml :  

SELECT ID,NAME,STATUS FROM product ORDER BY FIELD #{name}

调用示例:

 结果是OK的:

注意细节点 :  

好了,该篇就到这。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3