SQL如何使用LIMIT子句获取指定行?LIMIT 101,200查询是否正确?
问题解答
这个LIMIT子句的用法不正确,无法返回你想要的101到200条记录。
错误原因
- MySQL 中
LIMIT后接两个参数的语法为LIMIT 偏移量, 返回行数,其中偏移量从0开始计数,0对应数据库返回的第一条记录 - 你写的
LIMIT 101,200实际逻辑是:跳过前101条记录,再返回后续的200条记录,最终得到的是第102条到第301条的结果,和需求不符
正确写法
要获取101到200条记录,正确的SQL写法如下:
$sql = "SELECT phone, join_date as join_date FROM dormant ORDER BY 排序字段 LIMIT 100, 100";
也可以用可读性更高的OFFSET语法:
$sql = "SELECT phone, join_date as join_date FROM dormant ORDER BY 排序字段 LIMIT 100 OFFSET 100";
注意事项
一定要补充ORDER BY子句指定明确的排序规则(比如按主键ID、join_date排序),否则数据库不保证默认返回的记录顺序,最终取到的100条记录可能不符合你的预期。
内容的提问来源于stack exchange,提问作者Salik Ameer
相关产品推荐
相关产品推荐

