MySQL 8.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
資料欄的排序順序。