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是不是也会这样子
总结: 排序的字段必须有一个字段是唯一的