关于客户端接口分页sql语句
时间:2022-05-04
本文章向大家介绍关于客户端接口分页sql语句,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今天突然翻到为客户端写分页数据的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 字段 from 表 where id>lastId order by id limit pageSize) temp
4 order by id desc
5 #翻下一页:
6 select 字段 from 表 where id<lastId order by id desc limit pageSize
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php7下的filesize函数
- PHP-FPM 设置多pool及配置文件重写操作示例
- laravel实现登录时监听事件,添加登录用户的记录方法
- php更新cookie内容的详细方法
- php实现映射操作实例详解
- Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
- yii框架数据库关联查询操作示例
- laravel-admin的多级联动方法
- Laravel数据库读写分离配置的方法
- php给数组赋值的实例方法
- php实现分页功能的详细实例方法
- 浅谈Laravel中的三种中间件的作用
- laravel 使用auth编写登录的方法
- laravel框架 laravel-admin上传图片到oss的方法
- php实现推荐功能的简单实例