sql使用limit实现分页功能遇到的小坑
查询 指定表 指定条件下 的第一页第一条数据的实现
1. SELECT id FROM '表' WHERE '条件' LIMIT 0,1; // 第一页取一条数据
2. SELECT id FROM '表' WHERE '条件' LIMIT 1,1; // 第二页取一条数据
这种写法只能实现一页一条数据的分页
例如下面的写法,取两条数据以上时就会出现错误
- SELECT id FROM '表' WHERE '条件' LIMIT 0,2; // 第一页取两条数据
- SELECT id FROM '表' WHERE '条件' LIMIT 1,2; // 第二页取两条数据
- 第一页的两条数据
- 第二页两条数据
第一页正常获取,从第二页开始,会出现第一页数据中的最后一条数据
解决办法
LIMIT i,a;
i:是指查询的索引值(默认是0)
a:是指查询的数量值
SELECT id FROM '表' WHERE '条件' LIMIT (i-1)*a,a;