limit分页查询
limit作用
limit将查询结果集的一部分取出来,通常使用在分页查询中。
limit使用
完整用法:limit startindex,length
startindex是起始下标,length是长度。
起始下标从0开始。
缺省用法:limit 5;这是取前5;
注意:mysql中limit在order by之后执行
所以薪资
mysql> select ename,sal from emp order by sal desc;
+--------+---------+
| ename | sal |
+--------+---------+
| KING | 5000.00 |
| SCOTT | 3000.00 |
| FORD | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| ALLEN | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| WARD | 1250.00 |
| MARTIN | 1250.00 |
| ADAMS | 1100.00 |
| JAMES | 950.00 |
| SMITH | 800.00 |
+--------+---------+
14 rows in set (0.04 sec)
按照薪资降序,取出排名在前5的员工
mysql> select ename,sal from emp order by sal desc limit 5;
+-------+---------+
| ename | sal |
+-------+---------+
| KING | 5000.00 |
| SCOTT | 3000.00 |
| FORD | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
5 rows in set (0.03 sec)
取出工资排名在[3,5]名的员工
mysql> select ename,sal from emp order by sal desc limit 2,3;
+-------+---------+
| ename | sal |
+-------+---------+
| FORD | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
3 rows in set (0.02 sec)
在这里2表示起始位置下标从2开始,3表示三条记录(5-3+1)
通用分页
每页显示3条记录
- 第一页:limit 0,3
- 第二页:limit 3,3
- 第三页:limit 6,3
- 第四页:limit 9,3
public static void main(String[] args){
//用户提交过来一个页码,以及每页显示的记录条数
int pageNo=5;//第5页
int pageSize=10//每页显示10条数据
int start=(pageNo-1)*pageSize;
String sql = "select ...limit"+startIndex + ","+pageSize;
}