在项目开发时,为了使查询的数据结果满足用户的要求,通常会对查询出的数据进行上升或下降的排序。
MySQL提供了两种排序的方式,分别为单字段排序和多字段排序。
1.准备
CREATE DATABASE mahaiwuji;
USE mahaiwuji;
CREATE TABLE emp
(
empno INT PRIMARY KEY,
ename VARCHAR(10),
sal INT,
deptno INT
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO emp VALUES (1,'smith',1800,20);
INSERT INTO emp VALUES (2,'allen',1500,10);
INSERT INTO emp VALUES (3,'ward',1600,30);
INSERT INTO emp VALUES (4,'jones',2000,30);
INSERT INTO emp VALUES (5,'martin',1800,10);
INSERT INTO emp VALUES (6,'blake',1800,30);
2.语法
order by a --a升序
order by a asc --a升序
order by a desc --a降序
order by a,b --a和b都是升序
order by a,b desc --a升序,b降序
order by a desc,b --a降序,b升序
order by a desc,b desc --a和b都是降序
/*
1.如果不指定排序的标准,则默认是升序,升序用asc表示,默认可以不写
2.为一个字段指定的排序标准并不会对另一个字段产生影响
*/
3.实例演示
-- 按照sal升序排序
SELECT * FROM emp ORDER BY sal;
-- 等价于
SELECT * FROM emp ORDER BY sal ASC;
-- 按照sal降序排序
SELECT * FROM emp ORDER BY sal DESC;
-- 先按照deptno升序排序,如果deptno相同,在按照sal升序排序
SELECT * FROM emp ORDER BY deptno,sal;
-- 先按照deptno降序排序,如果deptno相同,在按照sal升序排序
SELECT * FROM emp ORDER BY deptno DESC,sal;