也是第一次写这两个功能,,之前写的都是按照createTime创建时间来排序获取上一页下一页id

后来发现如果数据的创建时间一样的话就会出现问题

于是参考了这个博客

mysql排序后获取上一条记录和下一条记录_小可乐-我一直在的博客-CSDN博客

需求是根据创建时间排序后,在根据名称首字母大小来排序获取上一页下一页id

主要方法是将数据排一个编号 再根据编号来查询上一页下一页id

贴一下sql 根据大佬的sql修改后的代码

SELECTm.*
FROM(SELECT(@i := @i + 1) AS RowNum,o.*FROM(SELECTid,type,org_id,org_name,group_id,group_name,grade_id,grade_name,subject_id,subject_name,unit_id,unit_name,chapter_id,chapter_name,task_id,act_id,NAME,display_file_name,primary_id,primary_name,res_type,cover,url,is_verify AS verify,verify_status_update_time,verify_status_update_user,verify_status_update_user_id,create_user_name,create_user,del_flag,create_time,update_timeFROMres_resourceWHEREdel_flag = '0'AND (type <> 6AND del_flag = 0AND is_verify = 1AND org_id IN ('1906e32f94d025bcd11f48f190d4333a','217e541106bb5d8baf37e297792668e4','c4c382745b8079ffcf1ce0e9286c373b','fd5fd12bdf4b7cdda4ab82610c29543e'))ORDER BYcreate_time,CONVERT (NAME USING gbk)LIMIT 10) o,(SELECT @i := 0) B) m,(SELECTD.id,D.RowNum AS n2FROM(SELECT(@j := @j + 1) AS RowNum,o.*FROM(SELECTid,type,org_id,org_name,group_id,group_name,grade_id,grade_name,subject_id,subject_name,unit_id,unit_name,chapter_id,chapter_name,task_id,act_id,NAME,display_file_name,primary_id,primary_name,res_type,cover,url,is_verify AS verify,verify_status_update_time,verify_status_update_user,verify_status_update_user_id,create_user_name,create_user,del_flag,create_time,update_timeFROMres_resourceWHEREdel_flag = '0'AND (type <> 6AND del_flag = 0AND is_verify = 1AND org_id IN ('1906e32f94d025bcd11f48f190d4333a','217e541106bb5d8baf37e297792668e4','c4c382745b8079ffcf1ce0e9286c373b','fd5fd12bdf4b7cdda4ab82610c29543e'))ORDER BYcreate_time,CONVERT (NAME USING gbk)LIMIT 10) o,(SELECT @j := 0) B) DWHERED.id = '11d44c2c18d991df122e5475f0c5d603') q
WHEREm.RowNum > q.n2
ORDER BYm.RowNum ASC
LIMIT 1

这是查询下一页的sql

上一页的只需要把后面的条件换成

WHEREm.RowNum < q.n2
ORDER BYm.RowNum DESC
LIMIT 1

补充:

用了另一种写法 思路一样 换成了list的方式index

/*** 查询下一条资源详情* @param id* @return*/
public SysResResource getLastnews(String id){PigUser user = SecurityUtils.getUser();SysResResource sysResResource1 = sysResResourceMapper.selectById(id);List<String> deptIdsByUserId  = new ArrayList<>();R<List<String>> r = remoteUserService.getDeptIdsByUserId(user.getId());if (r!=null&& r.getData()!=null){deptIdsByUserId = r.getData();}QueryWrapper<SysResResource> wrapper = Wrappers.query();wrapper.ne("type", 6).in("org_id",deptIdsByUserId).isNull("act_id").orderBy(true,true,"create_time","CONVERT(name USING gbk)");List<SysResResource> list = sysResResourceMapper.selectList(wrapper);List<String> idList = list.stream().filter(Objects::nonNull).map(it -> it.getId()).collect(Collectors.toList());int index = 0;for(int i = 0;i<idList.size();i++){if(sysResResource1.getId().equals(idList.get(i))){index = i+1;}}if(index==idList.size()){return null;}return sysResResourceMapper.selectById(idList.get(index));}

上一条详情 isAsc 改为false

wrapper.orderBy(true,false,"create_time","CONVERT(name USING gbk)");

具体的还是根据自己需求的具体情况来实现

Mysql查询上一页下一页id相关推荐

  1. Asp.net(c#)GridView分页时用图片显示上一页,下一页

    Asp.net(c#)GridView分页时用图片显示上一页,下一页 效果展示: 需要的两张图片:    详细代码: Code <%@ Page Language="C#"  ...

  2. 翻页 java_jsp实现上一页下一页翻页功能

    [导读]前段时间一直忙于期末考试和找实习,好久没写博客了.这段时间做了个小项目,包含了翻页和富文本编辑器Ueditor的两个知识点,Ueditor玩的还不是很深,打算玩深后再写篇博客. 前段时间一直忙 ...

  3. php下一页的代码,PHP简单实现上一页下一页功能示例

    本文实例讲述了PHP简单实现上一页下一页功能.分享给大家供大家参考,具体如下: 思路整理: 现在好多人用id的增1和减1实现上一篇和下一篇,但是难道文章ID不会断了吗?所以你要知道上个ID和个ID是多 ...

  4. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转

    分页源代码,分页时上一页下一页不显示,但可以跳转 $sql="select * from product where pronum like'%$key%' or pdes like '%$ ...

  5. eayUi panel实现上一页下一页

    function 是为了第一次加载的时候显示页面 butt1和butt2触发上一页下一页,后面绑定参数即可 问题:.panel({href:href})到后台的时候会请求两次,这个问题还没有解决 把 ...

  6. html分页首页上一页下一页,HTML静态分页(形如:首页,上一页,下一页,尾页)...

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. fu ...

  7. PHP+Mysql查询上一篇和下一篇文章实例

    PHP+Mysql查询上一篇和下一篇文章实例 简单的PHP+Mysql查询上一篇和下一篇文章实例,并输出上一篇和下一篇文章的标题和链接,适合新手学习 获取当前浏览文章id: 1 $id = isset ...

  8. 用数据库的方式编辑上一页 下一页

    实现文章上一页  下一页的效果  通过调用数据库 using(SqlConnection con=new SqlConnection(@"server=..")) { Guid a ...

  9. php分页上一页下一页判断,一个分页函数:显示“上一页下一页”等

    '************************************************** '函数名:ShowPage '作 用:显示"上一页 下一页"等信息 '参 数 ...

最新文章

  1. BP算法双向传_链式求导最缠绵(深度学习入门系列之八)
  2. db2查询字段备注_通过逐浪数据精灵管理sqlserver数据表备注以及字段说明
  3. sonarqube没有html插件,spring-boot – 找不到id为’org.sonarqube’的插件
  4. Educoder Matplotlib和Seaborn 三维图 第一关绘制三维图
  5. kali利用fluxion无线网络钓鱼
  6. matlab运行出现:Optimization terminated.
  7. 【JAVA自学笔记 DAY01】Java基础入门
  8. Keil5开发工具 --- 背景颜色绿色护眼
  9. 自制一个简单的音乐播放器
  10. kettle案例21-将字段值设置为常量
  11. [Power Query] 快速计算列
  12. position属性与z-index属性详解,如何比较z-index值确定覆盖关系,为何z-index属性不生效。
  13. 内置模块:http模块
  14. 温故而知新的知识蒸馏 Distilling Knowledge
  15. 微信小程序 基础 - 05 (wxml语法:动态数据绑定)
  16. mysql 负数类型_MySQL数据类型详解
  17. 优化 es 中 should 加 matchPhraseQuery 查询性能
  18. 【投屏】Scrcpy源码分析二(Client篇-连接阶段)
  19. Asp.Net与SEO – 庞大的反向链接网络(一)
  20. 关于进制和强制类型转换

热门文章

  1. 电子商务势不可挡,大学生在家创业日进斗金
  2. loopback修改密码功能(去掉邮箱验证了)
  3. L-Ascorbic acid-13C-3 L-抗坏血酸 13C-3; 维生素C 13C-3; 维生素 C 13C-3 活性氧
  4. 5G正在加速制造业的数字化转型;黑芝麻智能与禾赛科技达成战略合作 | 全球TMT...
  5. 计算机网络几种常见的协议
  6. 为什么PSP、PS3再便宜我都不会去买
  7. linux 16.04桌面系统,ubuntu16.04 server 安装经典桌面环境 Gnome 桌面
  8. 《技术人求职指南》(六)如何选择Offer
  9. 你怎么过一天,就是怎么过一辈子
  10. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-2D-CNN(四)