有这样一个场景,手机页面从 A 表中拉取15条数据,需要加载更多,就需要进行分页拉取,但是此时A表中新增了一条数据,应该如何拉取,不重复数据?可以不拉去 新增的数据,A表排序不是根据ID排序,因此id大小存在不连续,数据库为Mysql
应该怎样写sql语句才能拉取呢?
有这样一个场景,手机页面从 A 表中拉取15条数据,需要加载更多,就需要进行分页拉取,但是此时A表中新增了一条数据,应该如何拉取,不重复数据?可以不拉去 新增的数据,A表排序不是根据ID排序,因此id大小存在不连续,数据库为Mysql
应该怎样写sql语句才能拉取呢?
思路一:在前端数据展示时,对比之前的id 进行去重.(不是通过sql语句)
思路一会有一个问题,可能第二次刷新出来的数据不足15条
思路二:把已经查询出来的数据id回传回去,下一次查询时先去重,在分页展示.
思路三:
另外常用的数据库不做特殊处理时sql插入数据的话一般情况是id增加插入的,不会出现 在已经有的id中间插入的.
发出分页请求时,记录第一次的数据最大的id,下一次分页查询时代上最大的id,分页时where id<=最大id
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
调取分页接口时可以通过传入时间来控制数据重复的问题。
第一次(即第一页)调用接口,获取当前时间作为时间标志,并传入接口中,分页数据的创建时间应符合小于时间标志。
(这时有新数据插入)
第二页,依然传入时间标志,分页数据应符合小于时间标志,新插入的数据自然被排除在外。
下拉刷新,第一次调用,重新获取时间标志……