MySQL ORDER BY(排序) 语句

MySQL ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序

使用 ORDER BY 子句从数据表中读取数据,语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

参数说明:

  • column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列
  • table_name 是你要从中查询数据的表的名称
  • ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ... 是用于指定排序顺序的子句。ASC 表示升序(默认),DESC 表示降序

更多说明:

  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果
  • 你可以设定多个字段来排序
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列
  • 你可以添加 WHERE...LIKE 子句来设置条件

以下示例在之前创建的RoboMaster数据库下进行操作

当前数据库数据

mysql> SELECT * FROM Username;
+------+------------+-----------+
| id   | Username   | Password  |
+------+------------+-----------+
|    1 | steins_xin | 123456    |
|    2 | xin        | 123456789 |
+------+------------+-----------+
2 rows in set (0.01 sec)

示例:

  1. 单列排序:

升序 ASC 排序

SELECT * FROM username ORDER BY id ASC;

结果:

mysql> SELECT * FROM username ORDER BY id ASC;
+------+------------+-----------+
| id   | Username   | Password  |
+------+------------+-----------+
|    1 | steins_xin | 123456    |
|    2 | xin        | 123456789 |
+------+------------+-----------+
2 rows in set (0.00 sec)
  1. 多列排序:
SELECT * FROM username 
ORDER BY id ASC, username ASC;

以上 SQL 语句将并 ID 升序 ASC 排序,然后在相同ID中根据 username 降序 ASC 排序。

结果:

mysql> SELECT * FROM username
    -> ORDER BY id ASC, username ASC;
+------+--------------+-----------+
| id   | Username     | Password  |
+------+--------------+-----------+
|    1 | aasteins_xin | 123456    |
|    1 | steins_xin   | 123456    |
|    2 | xin          | 123456789 |
+------+--------------+-----------+
3 rows in set (0.00 sec)
  1. 使用数字表示列的位置:
SELECT id, username, Password
FROM username
ORDER BY 1 DESC, 2 ASC;

以上 SQL 语句将按第一列(id)降序 DESC 排序,然后按第二列(username)升序 ASC 排序。

结果:

mysql> SELECT id, username, Password
    -> FROM username
    -> ORDER BY 1 DESC, 2 ASC;
+------+--------------+-----------+
| id   | username     | Password  |
+------+--------------+-----------+
|    2 | xin          | 123456789 |
|    1 | aasteins_xin | 123456    |
|    1 | steins_xin   | 123456    |
+------+--------------+-----------+
3 rows in set (0.00 sec)

results matching ""

    No results matching ""