oracle 排序分页问题(排序分页错乱)

在使用oracle数据库(11g,11.2.0.4.0)做排序分页的时候,发现分页返回的数据跟一次性分页返回的数据不一样

ORM框架: mybatis-plus
使用自带分页对象 com.baomidou.mybatisplus.extension.plugins.pagination.Page

例如
表–>学生表 student
字段–> id,name,age,type 主键,姓名,年龄,类型(例如组长多个,班长,学习委员…)

select stu.* from student  stu order by stu.type  desc

然后发现每页返回的数据加起来跟一次性分页返回的数据不一样(内容不一样,总条数相同)

找了资料,询问同事知道, oracle 排序分页的时候,被排序的字段必须有唯一性,不然数据会有混乱

修改SQL

select stu.* from student  stu order by stu.type  desc, stu.id asc

ps: 不知道mysql是不是也会这样子

总结: 排序的字段必须有一个字段是唯一的

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐