MySQL | 如何对查询结果集进行排序

MySQL | 如何对查询结果集进行排序

数据操作语言:结果集排序

  • 如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用 ORDER BY 子句。
SELECT ...... FROM ...... ORDER BY 列名 [ASC | DESC];
SELECT ename,sal FROM t_emp ORDER BY sal;
SELECT empno,ename,sal,deptno FROM t_emp ORDER BY sal DESC;

排序关键字

  • ASC 代表升序(默认),DESC 代表降序
  • 如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按日期大小排序,如果是字符串就按照字符集序号排序。
SELECT ename,sal FROM t_emp ORDER BY hiredate DESC;
SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY ename ASC;
SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY hiredate DESC;

排序字段内容相同的情况

  • 默认情况下,如果两条数据排序字段内容相同,那么排序会是什么样子?

  • 我们可以使用 ORDER BY 规定首要排序条件和次要排序条件。

    数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序。

2

SELECT empno,ename,sal,hiredate FROM t_emp ORDER BY sal DESC,hiredate ASC;
SELECT 
    empno,ename,deptno,sal
FROM t_emp
ORDER BY deptno,sal DESC;
SELECT 
    empno,ename,sal
FROM t_emp ORDER BY sal DESC LIMIT 0,5;

排序 + 分页

  • ORDER BY 子句书写的时候放在 LIMIT 子句的前面

    FROM -> SELECT -> ORDER BY -> LIMIT