5、排序 + 分页 ( order by ) ( limit )

[order  排序]    [by 通过]

一 基础语法

select   //序3
    字段1,字段2
from     //序1
    表名
where //序2
  条件语句 order by
//序3 排序字段1 ASC|DESC,排序条件2 ASC|DESC,..... //默认是升序ASC 可以省略不写

执行顺序:先执行from,在执行where,然后执行select,最后执行order by。 

 

二 单列排序 [排序字段只有一个]

//找出年龄大于30的英雄 并倒序
SELECT * FROM hero WHERE age>30 ORDER BY age DESC;

 

三 组合排序 [排序字段有多个]

//找出年龄大于30的英雄 按年龄倒序 年龄相同的 按身高正序
SELECT * FROM hero WHERE age>30 ORDER BY age DESC,height ASC;

先按第一个字段排序,如果第一个字段相同,再按照第二个字段排序,依次类推。
如果第一个字段没有相同的,第二个字段压根就用不上。

 

语法

limit startIndex,length;
startindex:表示起始位置  从0开始
length:取几条数据

 

要点

1、limit是MySQL中特有的,其他数据库中木有
2、limit取结果集中的部分数据,这是它的的作用
3、limit是SQL语句中最后执行的部分
4、分页查询用的就是limit
5、最后一个数据不够了,有几条展示几条

 

小练习

//找到工资前五名的员工
select ename,sal from emp order by sal desc limit 0,5;
select ename,sal from emp order by sal desc limit 5; //只写第二个参数,表示第一个参数为0省略了。
//找出工资排名在第四到第九的员工
select ename,sal from emp order by sal desc limit 3,6;

 

通用的标准分页SQL

limit起始值 = 页数减一再乘以条数 

公式:(page-1) num

每页显示3条记录
第一页:0,3
第二页:3,3
第三页:6,3
第四页:9,3
第五页:12,3

num = 10; //每页显示多少条;
page = 5; //当前页;
limit 40,10;
limit (page-1)num,num;

 

posted @ 2020-11-19 16:21  棉花糖88  阅读(357)  评论(0)    收藏  举报