MySQL 排序技巧一览

发表时间: 2021-08-26 09:30

1、现有员工表如下:

emp:empno(员工编号),empname(员工名称)sal(员工薪资)

1)查询员工的名字和薪资,按照员工的薪资倒序,薪资一样时,按照员工名字正序排。

select ename ,sal from emp order by sal desc, ename asc;

总结:越靠近前面的排序字段,起的主导作用越大。只有当前面的字段的值一样的时候,才会启用后面的字段进行排序。


2、排序的字段也可以使用查询字段的顺序来代替:

例如:select ename , sal from student order by sal; 们可以写成这样

select ename , sal from student order by 2; 但是这种形式不健壮,我们在工作开发中,也尽量不要去这么使用。


3、order by 在sql语句中什么时候执行

selec 第三

字段1,字段2,字段3 ...

from 第一

表名

where 第二

条件

order by 第四

字段1


我们可以看出先执行 from --> where --> select --> order by

我们怎么证明order by是在select 后面执行的?

select ename ,sal * 12 as yealsal from emp order by yealsal;这条语句可以正常执行,说明order by就是在select后面执行的,应为yealsal这个字段是在select里面定义的,只有select执行了yealsal这个字段才存在,才可以使用。所以order by是在select后面执行的。