MySQL中的排序 order by

排序 order by

所使用到的表
MySQL中的排序 order by_第1张图片

order by再sql语句中的用法:

select
    ...
from
    ...
where
    ...
order by
    字段名

当我们查询出结果后,根据结果集中的某个字段进行排序,order by 字段名 排序方式(升序/降序)

单字段排序

查询出表中的ename字段并对其进行排序

select enamefrom emp order by ename;

MySQL中的排序 order by_第2张图片
这里所显示的ename 是按照字母(A-Z)的顺序来排列的,是升序,这也是默认情况下,我们没有设置排序是按照降序还是升序。

order by 字段名 desc;	降序排序列
order by 字段名 asc;		升序排列(默认)

查询员工姓名和工资字段的数据,并按照工资的升序/降序进行排列

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

MySQL中的排序 order by_第3张图片
MySQL中的排序 order by_第4张图片

MySQL中的排序 order by_第5张图片

多字段排序

当我们在进行数据查询的时候,不免会遇到两个数据相同的情况,这时候要想将他们分出个先后顺序就要借助其他字段进行排序了,需要使用到多字段排序

查询员工的名字和薪资,要求薪资按照升序排列,当薪资相同时,再按照名字升序排列

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

MySQL中的排序 order by_第6张图片
在上面单使用sal字段进行升序排序时,FORD和SCOTT两人的工资相同,SCOTT排到了FORD之前。但这里我们使用sal和ename两个字段进行排序时,FORD排到了SCOTT之前,这是因为ename字段按照升序排列的原因。

根据字段位置排序,不建议,因为列的顺序可能发生变化,列顺序改变之后,数字代表的字段也就变了。

按照第二列数据进行排序
select ename,sal from emp order by 2 asc ;

MySQL中的排序 order by_第7张图片

你可能感兴趣的