学习笔记springboot如何实现查看题目详情的上下题目切换

65 阅读2分钟

前言

在今天的学习中学到了查看题目详情并且可以上下题目切换的功能实现方法,接下来来具体记录一下,题目切换的逻辑如何实现

简单分析

想要实现这个功能,可以具体分析一下,我需要的是什么样的结果,实现这个方法我需要怎么做?

首先我们的题目id肯定是一个自增长的id,可能会想通过这个题目的自增id来实现题目的上下切换功能,但是如果其中有一个自增id被删除了呢?那么这个功能就会出现问题,那我们可以使用怎么的方法来解决呢?

这边可以在我们的sql中使用order by来根据题目id进行一个排序,然后配合limit来每次只查询出一条数据,使用limit的原因是我们查看题目详情切换了题目也只展示一条数据。

如何写sql来完成题目上下切换的功能

接下来来看看具体得sql语句如何编写吧

查看下一条数据

select * from question_info where question_id < 1006 order by question_id desc limit 0,1

首页我们先查询出我们的题目表中有多少条题目数据,然后根据order by降序排序 这样我们就可以获取到类似于这样的排序数据 1006 1005 1004 然后在通过条件判断 question_id 小于1006的数据 这样会得到 1005 1004 但是我们得题目需求就是查看后面一条数据,所以使用limit分页显示一条数据。这样就可以实现查看下一条题目数据得功能。

查看上一条数据

select * from question_info where question_id > 1004 order by question_id desc limit 0,1

这边得逻辑跟上面得大致差不多就是将排序得条件更改为了升序,然后判断得条件更改为了大于,排序得结果为1004 1005 1006,然后在通过limit接取一条数据就可以获取到1005这条数据。

id不是连贯得条件下 如何实现呢

例如id为:1003 1004 1006呢? 其实也是非常得简单 只需要将上面sql的判断条件更改为自己本身就可以啦~

上一条数据

select * from question_info where question_id > 1004 order by question_id desc limit 0,1

下一条数据

select * from question_info where question_id < 1004 order by question_id desc limit 0,1

这样就通过sql语句实现l题目的上下切换逻辑,也是让我又学习到了一些我没做的功能,对我有很大的收获!