limit是重中之重,以后分页查询就靠它。
limit是mysql特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)
limit取结果集中的部分数据,这是他的作用。
语法机制
·····limit startIndex,length
startIndex表示起始位置
length表示取出几个。
案例:取出工资前五的员工(思路:降序取前五)
mysql> select ename,sal from emp order by sal desc limit 0,5;
+-------+---------+
| ename | sal |
+-------+---------+
| KING | 5000.00 |
| FORD | 3000.00 |
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
如果startIndex不写默认视为0
mysql> select ename,sal from emp order by sal desc limit 5;
+-------+---------+
| ename | sal |
+-------+---------+
| KING | 5000.00 |
| FORD | 3000.00 |
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
limit是sql语句最后执行的一个环节:
select…5
from …1
where…2
group by…3
having…4
order by…6
limit…7
案例:找出工资排名在第四到第九名的员工:
mysql> select ename,sal from emp order by sal desc limit 3 , 6;
+--------+---------+
| ename | sal |
+--------+---------+
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| ALLEN | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
+--------+---------+
通用的标准分页sql
每页显示三条记录:
一:0,3
二:3,3
三:6,3
四:9,3
五:12,3
。。。
每页显示pageSize条记录:
*第pageNo页:(pageNo - 1)pageSize , pageSize
pageSize是每页显示多少条记录
pageNo是显示第几页