数据库分页查询问题:32条数据仅能查前10条,无法获取后续数据
SQL分页查询解决方案
要获取records表中接下来的10条记录,你需要在LIMIT语句中指定偏移量(即跳过前面已查询的记录数),具体有两种标准写法:
写法一:LIMIT 偏移量, 记录数
SELECT * FROM `records` LIMIT 10, 10;
第一个10是偏移量(跳过前10条),第二个10是要返回的记录数,执行后会得到第11到20条记录。
写法二:LIMIT 记录数 OFFSET 偏移量
这是可读性更强的写法,逻辑更直观:
SELECT * FROM `records` LIMIT 10 OFFSET 10;
效果和上面的语句完全一致,同样返回第11到20条记录。
额外提示
- 如果要获取第3页的记录(第21到32条),可以写:
即使剩余记录不足10条,数据库也会返回所有剩下的12条。SELECT * FROM `records` LIMIT 10 OFFSET 20; - 为了保证分页结果稳定,建议加上
ORDER BY子句,用唯一字段(比如主键id)排序,避免数据库返回的记录顺序随机变化:SELECT * FROM `records` ORDER BY id LIMIT 10 OFFSET 10;
内容的提问来源于stack exchange,提问作者qvws
相关产品推荐
相关产品推荐

