如何解决Sqlalchemy 限制/偏移量返回不正确的分页结果
my_query = session.query(Task).join(
Job,Job.id == Task.job_id
).join(
User,User.id == Task.member
)
在此之后我想实现一些排序:
sort_func = 'asc' if '-' not in data['sort'] else 'desc'
sort_key = data['sort'].replace('-','')
sort_map = {
'task_name': Task.name,'created_at': Task.created_at,}
query = query.order_by(getattr(sort_map[sort_key],sort_func)())
假设这个查询返回以下结果:
[{id: 1,task_name: 'Metallica'},{id: 2,task_name: 'soad'},{id: 3,task_name: 'elasticsearch'},{id: 4,task_name: 'bee'},{id: 5,task_name: 'one'},{id: 6,task_name: 'football'},{id: 7,task_name: 'mars'},{id: 8,task_name: 'hello'},{id: 9,task_name: 'apple'},{id: 10,task_name: 'car'},{id: 11,task_name: 'ford'}];
在此之后我想实现分页(使用动态偏移):
query = query.offset(offset).limit(5)
我希望在第一次请求后我的回复是上面列表中的前五项:
[{id: 1,task_name: 'one'}]
在第二次请求之后:
[{id: 6,task_name: 'car'}]
但是对于第二页,我从第一页获得了一些项目。 例如:
[{id: 2,{id: 1,task_name: 'Metallica'}]
有人知道为什么偏移/限制会扭曲我的结果吗? 或者这可能不是偏移/限制问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。