Keyset分页初始ID获取:首次查询UUID来源疑问
Keyset分页首次查询的处理方式
对于Keyset分页的首次查询,你完全不需要提前获取UUID,直接调整查询逻辑即可:
最简洁的方式:去掉WHERE条件
首次查询没有上一页的参考数据,直接执行不带WHERE id < @UUID AND created_at < @Date的基础查询,从排序后的第一条数据开始取:SELECT * FROM event ORDER BY id ASC, created_at ASC LIMIT 3;如果要统一接口逻辑(保留WHERE结构)
可以传入一个比所有可能的UUID都大的有效值(比如UUID格式的最大值ffffffff-ffff-ffff-ffff-ffffffffffff),同时传入一个远大于所有数据created_at的日期(比如9999-12-31)。此时id < @UUID和created_at < @Date会匹配所有数据,效果和去掉WHERE条件一致,这样就能复用同一个查询结构,不用区分首次和后续请求。
后续分页时,再用上一次查询返回的最后一条数据的id和created_at作为下一页的@UUID和@Date参数即可。
内容的提问来源于stack exchange,提问作者locklock123
相关产品推荐
相关产品推荐

