MariaDB ORDER BY 关键字用于按升序或降序对结果表进行排序。默认情况下,ORDER BY 关键字按升序对结果进行排序,但可以使用 ASC 关键字指定。要按降序对结果进行排序,需要使用 DESC 关键字。

语法

在 MariaDB 中使用 ORDER BY 关键字的语法如下:

SELECT column1, column2, column3, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC; 

示例:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

要获取按年龄(升序)排序的Employee表,查询为:

SELECT * FROM Employee
ORDER BY Age ASC; 

这将产生如下所示的结果:

IDNameCityAgeSalary
2MarryNew York242750
1JohnLondon253000
3JoParis272800
5RameshNew Delhi283000
6HuangBeijing282800
4KimAmsterdam303100

要获取Employee表中按年龄(升序)和EmpID(降序)排序的所有字段,查询将是:

SELECT * FROM Employee
ORDER BY Age ASC, EmpID DESC; 

以下代码的结果将是:

IDNameCityAgeSalary
2MarryNew York242750
1JohnLondon253000
3JoParis272800
6HuangBeijing282800
5RameshNew Delhi283000
4KimAmsterdam303100

将 ORDER BY 与 CASE 语句结合使用

获取具有自己首选顺序的行,CASE 语句可以与 ORDER BY 语句一起使用,如下所示:

要获取Employee按城市排序的表(如 CASE 语句中定义),查询为:

SELECT * FROM Employee
ORDER BY (
  CASE City
    WHEN 'New York' THEN 1
    WHEN 'London' THEN 2
    WHEN 'Amsterdam' THEN 3
    WHEN 'Paris' THEN 4
    ELSE 5
  END
)ASC, Salary DESC; 

这将按 CASE 语句中定义的方式对员工城市进行排序,并生成以下结果结果:

IDNameCityAgeSalary
2MarryNew York242750
1JohnLondon253000
4KimAmsterdam303100
3JoParis272800
5RameshNew Delhi283000
6HuangBeijing282800