Mysql排序后分页,因数据重复导致分页数据紊乱的问题
背景
前不久在写一个分页接口的时候,在测试阶段出现了排序结果紊乱且数据不正确的问题,那个接口是按照create_time进行排序的,但是对应的表中有很多相同create_time的数据,最后发现是因为 order by 排序的时候,如果排序字段中有多行相同的列值,则排序结果是不确定的。
复现
创建一个简单表,并插入一些数据
mysql> desc people;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| create_time | bigint(20) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
3 行于数据集 (0.02 秒)
mysql> select * from people;
+----