前言:
首先需要这个自定义排序的字段需求是,在本地项目的点赞功能 时 比如你有两个id ,需要对先点赞的用户id 这个字段先显示后面的,现在点赞的用户显示在前面时,用到。
1、 数据库字段sql 实现
当字段的值比较多时,首先想到的肯定时in 这个字段。然后查询:id 1 在前,5在后,我需要 5 在前1 在后这个样子才合了我的口味。
2、Mybatis 中怎们实现这个自定义排序功能
1、在Mapper 文件中我试了下暂时还没想出来,后面研究。
2、根据老师的写法如下:
重点:3、但是这样写是有问题:在控制台会报错你的语法错误 在near 第三行有语法错误。
报错这个问题的原因困扰了我几天,在前端页面显示就是服务器错误。
控制台报错信息:
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘)) ORDER BY FIELD (id,)’ at line 3
解决办法:
1、是MySQL 版本的问题,我本地Mysql 版本是8.0版面+ 的,老师应该是5.+ 版本的。所以我想来想去就根据报错的地方改下代码试试看。
2、Java代码如下:
3、改完之后发布代码,在看看,的确没这个错了。