19.MySQL中的ORDER BY(排序 )

100人浏览   2024-08-03 13:32:40

在项目开发时,为了使查询的数据结果满足用户的要求,通常会对查询出的数据进行上升或下降的排序。

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;

相关推荐