你可能已在前面的示例中注意到結果行沒有按特定順序顯示,當行以某種有意義的方式排序時,一般更容易檢查查詢輸出,要對結果進行排序,請使用ORDER BY
子句。mysql
這是動物的生日,按日期排序:sql
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
。segmentfault
默認排序順序是升序,首先是最小值,要按反向(降序)排序,請將DESC
關鍵字添加到要排序的列的名稱:code
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
列的排序順序。ci