5、ORDER BY:对查询结果排序
通過條件查詢語句可以查詢到符合用戶需求的數據,但是查詢到的數據一般都是按照數據最初被添加到表中的順序來顯示。為了使查詢結果的順序滿足用戶的要求,MySQL 提供了 ORDER BY 關鍵字來對查詢結果進行排序。
在實際應用中經常需要對查詢結果進行排序,比如,在網上購物時,可以將商品按照價格進行排序;在醫院的掛號系統中,可以按照掛號的先后順序進行排序等。
ORDER BY 關鍵字主要用來將查詢結果中的數據按照一定的順序進行排序。其語法格式如下:
ORDER BY <字段名> [ASC|DESC]語法說明如下。
- 字段名:表示需要排序的字段名稱,多個字段時用逗號隔開。
- ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC為默認值。
使用 ORDER BY 關鍵字應該注意以下幾個方面:
- ORDER BY 關鍵字后可以跟子查詢
- 當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待。
- ORDER BY 指定多個字段進行排序時,MySQL 會按照字段的順序從左到右依次進行排序。
單字段排序
下面通過一個具體的實例來說明當 ORDER BY 指定單個字段時,MySQL 如何對查詢結果進行排序。
例 1
下面查詢 tb_students_info 表的所有記錄,并對 height 字段進行排序,SQL 語句和運行結果如下。
由結果可以看到,MySQL 對查詢的 height 字段的數據按數值的大小進行了升序排序。
多字段排序
下面通過一個具體的實例來說明當 ORDER BY 指定多個字段時,MySQL 如何對查詢結果進行排序。
例 2
查詢 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,SQL 語句和運行結果如下。
注意:在對多個字段進行排序時,排序的第一個字段必須有相同的值,才會對第二個字段進行排序。如果第一個字段數據中所有的值都是唯一的,MySQL 將不再對第二個字段進行排序。
默認情況下,查詢數據按字母升序進行排序(A~Z),但數據的排序并不僅限于此,還可以使用 ORDER BY 中的 DESC 對查詢結果進行降序排序(Z~A)。
例 3
查詢 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,SQL 語句和運行結果如下。
DESC 關鍵字只對前面的列進行降序排列,在這里只對 height 字段進行降序。因此,height 按降序排序,而 name 仍按升序排序。如果想在多個列上進行降序排序,必須對每個列指定 DESC 關鍵字。
總結
以上是生活随笔為你收集整理的5、ORDER BY:对查询结果排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4、 LIMIT:限制查询结果的条数
- 下一篇: 6、WHERE:条件查询数据