定義:spa
在 MySQL SELECT 語句中,ORDER BY 子句主要用來將結果集中的數據按照必定的順序進行排序。code
其語法格式爲:blog
SELECT <字段>[,..<字段n>] FROM <數據表名>排序
ORDER BY {<列名> | <表達式> | <位置>} [ASC|DESC]語法
語法說明以下。方法
指定用於排序的列。能夠指定多個列,列名之間用逗號分隔。im
指定用於排序的表達式。d3
指定用於排序的列在 SELECT 語句結果集中的位置,一般是一個正整數。數據
關鍵字 ASC
表示按升序分組,關鍵字 DESC
表示按降序分組,其中 ASC
爲默認值。這兩個關鍵字必須位於對應的列名、表達式、列的位置以後。
使用 ORDER BY 子句應該注意如下幾個方面:查詢
【實例 1】查詢 tb_students_info 表的 height 字段值,並對其進行排序,輸入的 SQL 語句和執行結果以下所示。
以上查詢未指定排序的方法,則按照默認的ASC升序進行排序;
有時須要根據多列進行排序。對多列數據進行排序要將須要排序的列之間用逗號隔開。
【實例 2】查詢 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,輸入的 SQL 語句和執行結果以下所示。
一、只對height進行排序時以下:
二、先對height進行排序,再對name進行排序,查詢結果以下:
以上查詢結果顯示,只對height進行排序時,Dany排在Anna的前面;將對height和name都進行排序時Anna排在了前面;
提示:前提條件:先排序的height列中Anna和Dany 的height值都是160,因此先進行了height排序,再進行name排序。
注意:在對多列進行排序時,首行排序的第一列必須有相同的列值,纔會對第二列進行排序。若是第一列數據中全部的值都是惟一的,將再也不對第二列進行排序。
默認狀況下,查詢數據按字母升序進行排序(A~Z),但數據的排序並不只限於此,還可使用 ORDER BY 對查詢結果進行降序排序(Z~A),這能夠經過關鍵字 DESC 實現。能夠對多列進行不一樣的順序排序。
【實例 3】查詢 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,輸入的 SQL 語句和執行過程以下所示。
注意:DESC 關鍵字只對前面的列進行降序排列,在這裏只對 height 排序,而並無對 name 進行排序,所以,height 按降序排序,而 name 仍按升序排序,若是要對多列進行降序排序,必需要在每一列的後面加 DESC 關鍵字。