使用排序加LIMIT分页翻到第二页的时候出现数据串行

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】5.7.25-OceanBase_CE-v4.0.0.0
【问题描述】使用 ORDER BY start_time DESC 排序加 LIMIT 0, 15 分页,在第2页的时候出现的第一页的数据(start_time 有部分值的一致的

SELECT * FROM test ORDER BY start_time DESC LIMIT  0, 15;
SELECT * FROM test ORDER BY start_time DESC LIMIT 15, 15;

第1页
第1页

可以看到第1页的ID=11的结果又出现在了第2页

如果去掉 ORDER BY start_time DESC 或者 ORDER BY start_time DESC, id 再加一个唯一的排序就又正常显示

正常的。mysql 也会。
所以,分页排序条件建议唯一。后面带个主键或唯一键就保险了。

一样的表结构和数据,MySQL试了不会,MySQL版本 5.7.29

按照SQL的语义,你这里只对start_time进行排序,如果有重复值,那么不同列的输出顺序实际上是没法保证的,如果确定需要保证,那么应该用唯一键进行排序;
MySQL不会,可能只是恰好MySQL的排序方式是”稳定的“?不过,我理解这个并没有SQL语义上的保证