关于MySQL自定义排序(Java & MySQL 版本)

前言:

首先需要这个自定义排序的字段需求是,在本地项目的点赞功能 时 比如你有两个id ,需要对先点赞的用户id 这个字段先显示后面的,现在点赞的用户显示在前面时,用到。

1、 数据库字段sql 实现

当字段的值比较多时,首先想到的肯定时in 这个字段。然后查询:id 1 在前,5在后,我需要 5 在前1 在后这个样子才合了我的口味。
在这里插入图片描述

2、Mybatis 中怎们实现这个自定义排序功能

1、在Mapper 文件中我试了下暂时还没想出来,后面研究。
2、根据老师的写法如下:
在这里插入图片描述

重点:3、但是这样写是有问题:在控制台会报错你的语法错误 在near 第三行有语法错误。

报错这个问题的原因困扰了我几天,在前端页面显示就是服务器错误。
关于MySQL自定义排序(Java & MySQL 版本)_第1张图片

控制台报错信息:

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
关于MySQL自定义排序(Java & MySQL 版本)_第2张图片

解决办法:

1、是MySQL 版本的问题,我本地Mysql 版本是8.0版面+ 的,老师应该是5.+ 版本的。所以我想来想去就根据报错的地方改下代码试试看。

2、Java代码如下:
关于MySQL自定义排序(Java & MySQL 版本)_第3张图片

3、改完之后发布代码,在看看,的确没这个错了。
关于MySQL自定义排序(Java & MySQL 版本)_第4张图片

你可能感兴趣的:(MyBatis,知识体系,java)