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

这篇具有很好参考价值的文章主要介绍了Springboot Mybatis 自定义顺序排序查询,指定某个字段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

与本文无关

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

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

正文

今天要讲些什么? 


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


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

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

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

开搞

先看示例表 :
 

product 产品表

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

示例数据:
 

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

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

 比如 :  

SELECT * FROM  product  ORDER BY id DESC ;

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

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

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

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

 首先比较常规的方式 :
 

 ① 加 sort字段 order by sort

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

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

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

怎么搞? 

使用 ORDER BY FIELD

示例:

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

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

sql方面这样搞暂且OK。 

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

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

常规操作,不介绍。

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

也就是执行这个sql:

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

简单写下,mapper :
 

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

mapper.xml :
 

    <!--查询-->
    <select id="queryProductList" resultMap="BaseResultMap">
        SELECT
         ID,NAME,STATUS
        FROM product
        <if test="nameSortList != null and nameSortList.size >0  ">
            ORDER BY FIELD
            <foreach collection="nameSortList" item="name" open="(NAME," separator="," close=")">
                #{name}
            </foreach>
        </if>
    </select>

调用示例:


mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

 结果是OK的:


mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

注意细节点 :
 

mybatis 排序查询,跟我一起玩转 SpringBoot,spring boot,java,mysql,自定义顺序,ORDER BY FIELD

好了,该篇就到这。文章来源地址https://www.toymoban.com/news/detail-712508.html

到了这里,关于Springboot Mybatis 自定义顺序排序查询,指定某个字段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包