大数据学习web框架开发报错集锦

MySQL order by同值随机排序导致分页展示重复

2021-01-29  本文已影响0人  xiaogp

摘要:MySQLflask-sqlalchemy

问题复现

使用flask-sqlalchemy对MySQL表进行操作,对score字段进行排序,输出分页对象paginate,page_num=10。

paginate = PiraScore.query.filter(PiraScore.datetime == '2020-12-07')\
                .order_by(PiraScore.score.desc())\
                .with_entities(PiraScore.ent_name, PiraScore.score)\
                .paginate(page, page_num, False)

在前端查看分页效果,第一页


第一页.png

第二页重复出现同一条数据


第二页.png

问题分析

解决方案

在ORDER BY子句中加入其他列使的顺序确定,比如加入主键id,修改如下

paginate = PiraScore.query.filter(PiraScore.datetime == '2020-12-07')\
                .order_by(PiraScore.score.desc(), PiraScore.id)\
                .with_entities(PiraScore.ent_name, PiraScore.score)\
                .paginate(page, page_num, False)
上一篇下一篇

猜你喜欢

热点阅读