sql 排序后取数据,OFFSET 的值是根据排序的 ID
我有一条 SQL, 请问大佬们怎么优化, 或者说有什么更好的写法; 这里的优化指的是代码简洁, 并非查询速度优化;
PostgreSQL
伪代码
select * from table
where 条件
order by time
limit 10
OFFSET (
-- 主要用于获取 ID 在排序后序号
select 序号 from table
where id=参数
order by time
)
OFFSET的SQL与外层 SQL 除了查询数据不同, 其余完全一模一样,请问如何优化呢?
如果你感兴趣为什么有这条 SQL
通常分页使用 limit,page 直接给出了 OFFSET
但是会数据增加时,翻页可能会造成和上一页有重复数据
尝试解决方案是, 通过当前页最后一条数据的 ID 查询下一页
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论