MySQL 版本
MySQL 5.7.28 和 8.0.20 这两个版本都出现了这个问题。
相关的表和数据
建表语句:
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`score` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
表中的数据:
问题描述
只使用order by, 不使用limit时候,查询的语句:
SELECT * FROM test
ORDER BY score ASC
查询结果:
下面我们按照 score 升序,每页3条数据,来获取数据。
下面的sql依次为第1页、第2页、第3页、第4页、第5页的数据,如下:
查询第1页的语句:
SELECT * FROM test
ORDER BY score ASC
LIMIT 0,3
第1页结果:
查询第2页的语句:
SELECT * FROM test
ORDER BY score ASC
LIMIT 3,3
第2页结果:
查询第3页的语句:
SELECT * FROM test
ORDER BY score ASC
LIMIT 6,3
第3页结果:
查询第4页的语句:
SELECT * FROM test
ORDER BY score ASC
LIMIT 3,3
第4页结果: