关于客户端接口分页sql语句

简介: 今天突然翻到为客户端写分页数据的sql,发现其实逻辑不对。列表是按照id降序的 当时这样写的: #翻上一页: select 字段 from 表 where id>lastId order by id desc limit pageSize #翻下一页: select 字段 from 表...

今天突然翻到为客户端写分页数据的sql,发现其实逻辑不对。列表是按照id降序的

当时这样写的:

#翻上一页:
select 字段 from 表 where id>lastId order by id desc limit pageSize
#翻下一页:
select 字段 from 表 where id<lastId order by id desc limit pageSize

lastId是临近id,即上一页是最上面的id,下一页是最下面的id

pageSize是页面条数

显然,逻辑有问题。

如果pageSize=3;id列表是这样的:

 14 13 12 11 10 9 8 7 6 5 4 3 2 1

因为id降序,因此翻页是这样的:

1 第一页:14 13 12
2 第二页:11 10  9
3 第三页:8  7   6 
...

但实际上,后端接收三个参数:lastId,pageSize,direct。direct=0表示上一页,1下一页。

lastId=9,并向下一页,则id<9 降序,得8 7 6,没问题;

上一页,则id>9,如果只是降序则取出:14 13 12,显然应该是升序,即:10 11 12,然后再降序,返回给客户端:12 11 10

因此,应该这样写

1 #翻上一页:
2 select * from 
3 (select 字段 fromwhere id>lastId order by id  limit pageSize) temp
4 order by id desc
5 #翻下一页:
6 select 字段 fromwhere id<lastId order by id desc limit pageSize

 





唯有不断学习方能改变! -- Ryan Miao
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
101 1
|
5月前
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
141 0
|
6月前
|
SQL Java 数据库连接
Mybatis-动态sql和分页
Mybatis-动态sql和分页
89 0
|
30天前
|
SQL JSON Kubernetes
Seata常见问题之服务端 error日志没有输出,客户端执行sql报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
103 0
|
2月前
|
SQL 人工智能 运维
数据库基础入门 — SQL排序与分页
数据库基础入门 — SQL排序与分页
25 0
|
4月前
|
SQL 关系型数据库 数据库连接
Hasor【环境搭建 03】Dataway接口配置服务使用DataQL聚合查询引擎(SQL执行器实现分页查询举例说明+报错 Query dialect missing 原因分析及解决)
Hasor【环境搭建 03】Dataway接口配置服务使用DataQL聚合查询引擎(SQL执行器实现分页查询举例说明+报错 Query dialect missing 原因分析及解决)
82 0
|
4月前
|
SQL Java 数据库连接
动态sql和分页下(mybatis的分页及特殊字符)
动态sql和分页下(mybatis的分页及特殊字符)
33 0
|
4月前
|
SQL Java 数据库连接
动态sql和分页上
动态sql和分页上
24 0
|
5月前
|
SQL Java 数据库连接
Mybatis映射.动态sql.分页
Mybatis映射.动态sql.分页
29 0
|
5月前
|
SQL 前端开发 Java
Mybatis的动态SQL分页及特殊字符应用
Mybatis的动态SQL分页及特殊字符应用
23 0