相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  排序資料列

5.3.4.4 排序資料列

您可能已注意到,在先前的範例中,結果資料列的顯示沒有特定的順序。當資料列以有意義的方式排序時,通常更容易檢查查詢輸出。若要排序結果,請使用 ORDER BY 子句。

以下是動物的生日,依日期排序

mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name     | birth      |
+----------+------------+
| Buffy    | 1989-05-13 |
| Bowser   | 1989-08-31 |
| Fang     | 1990-08-27 |
| Fluffy   | 1993-02-04 |
| Claws    | 1994-03-17 |
| Slim     | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy   | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+

在字元類型欄位上,排序(如同所有其他比較運算)通常以不區分大小寫的方式執行。這表示,對於除了大小寫之外完全相同的欄位,其順序是不確定的。您可以使用 BINARY 來強制對欄位進行區分大小寫的排序,如下所示:ORDER BY BINARY col_name

預設排序順序是遞增,最小值在前。若要以相反(遞減)順序排序,請將 DESC 關鍵字新增至您要排序的欄位名稱

mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name     | birth      |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy   | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim     | 1996-04-29 |
| Claws    | 1994-03-17 |
| Fluffy   | 1993-02-04 |
| Fang     | 1990-08-27 |
| Bowser   | 1989-08-31 |
| Buffy    | 1989-05-13 |
+----------+------------+

您可以依多個欄位排序,並且可以依不同的方向排序不同的欄位。例如,若要依動物類型以遞增順序排序,然後在動物類型內依出生日期以遞減順序排序(最年輕的動物優先),請使用下列查詢

mysql> SELECT name, species, birth FROM pet
       ORDER BY species, birth DESC;
+----------+---------+------------+
| name     | species | birth      |
+----------+---------+------------+
| Chirpy   | bird    | 1998-09-11 |
| Whistler | bird    | 1997-12-09 |
| Claws    | cat     | 1994-03-17 |
| Fluffy   | cat     | 1993-02-04 |
| Fang     | dog     | 1990-08-27 |
| Bowser   | dog     | 1989-08-31 |
| Buffy    | dog     | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim     | snake   | 1996-04-29 |
+----------+---------+------------+

DESC 關鍵字僅適用於緊接在其之前的欄位名稱 (birth);它不會影響 species 欄位的排序順序。