Mysql 简明教程
MySQL - ORDER BY CLAUSE
MySQL ORDER BY Clause
MySQL ORDER BY 子句用于按提供的顺序对表的 1 个或多个列进行排序,该顺序可以是升序或降序。默认情况下,如果不指定排序顺序,它会按 ascending order 对列进行排序。
排序通过 2 个关键字指定;ASC 用于升序,DESC 用于降序。
使用 ORDER BY 子句,我们可以对表的多个列进行排序,并为每一列提供不同的排序顺序。例如,我们可以先按一列,然后按另一列对结果集进行排序,以此类推。
Syntax
以下是 MySQL 中 ORDER BY 子句的语法:
SELECT column-list
FROM table_name
[ORDER BY column1, column2, ..., columnN] [ASC|DESC]
在此,
-
column-list 是我们要从 table_name 中检索的列的名称。
-
column1, column2,…​columnN 是我们要排序(整理)的列。
-
ASC 将按升序对列进行排序。
-
DESC 将按降序对列进行排序。
默认情况下,ORDER BY 子句按升序排列提供的列。
Example
首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
以下查询将 7 条记录插入到上述创建的表中:
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );
执行以下查询以验证 CUSTOMERS 表是否已创建:
Select * from CUSTOMERS;
CUSTOMERS 表已成功创建:
现在,让我们按 NAME 列排序来显示 CUSTOMERS 表中的所有列:
默认情况下,ORDER BY 子句按 Ascending order 排序提供的列。
SELECT * FROM CUSTOMERS
ORDER BY NAME;
ORDER BY with Multiple Columns
我们还可以对 MySQL 表的多个列进行排序。为此,我们需要在 ORDER BY 子句中指定所有列名。
ORDER BY with ASC and DESC
在 MySQL 中,我们可以在同一个查询中按 ASC 和 DESC 对列进行排序。首先提供 ASC 的列将按升序排序,其次提供 DESC 的列将按降序排序。