Board logo

標題: 8-2-3 Order By 排序 [打印本頁]

作者: 小誌    時間: 2011-4-20 10:30     標題: 8-2-3 Order By 排序

8-2-3   Order By 排序雖然使用Where條件式可以依我們的條件定義來選取我們需要的資料,但是我們所得的資料錄順序是沒有特定規則的,例如,我希望同學的成績是按照數學分數的高低來條列(由最低分數排到最高分數),那該如何下指令?
首先,先完成您所需的欄位資料SQL句子,如果想獲得的全部欄位資料,我們就這樣寫:
  1. Select *  From  transcript
複製代碼
這樣就會取出所有資料表欄位的資料,可是我希望同學的成績資料是依照數學分數的高低來排列ㄚ,那我們就加上排序指令「Order By」,在「Select …Form…」後面再加上我們的條件「Order By 數學」:
  1. Select *  From  transcript Order By 英文
複製代碼
使用上列的SQL句子向資料庫下命令,即可獲得下圖的結果:(範例ex08_16.php)
[attach]5647[/attach]
圖8-19 依英文學分數排序。
作者: 小誌    時間: 2011-4-20 10:31

排序指令「Order By」,並不是只能依據單一的欄位排序,我們也可以同時指定多個欄位為排序依據:
  1. Select *  From  transcript  Order By 國文, 英文 ,數學
複製代碼
上式排序的結果,將會是先依「國文」欄位排序,然後再按照「英文」欄位排序,最後才會依照「數學」欄位排序:(範例ex08_17.php)
[attach]5648[/attach]
圖8-20  依「數學」、「國文」、「英文」欄位順序排序。
作者: 小誌    時間: 2011-4-20 10:32

8-2-3-1   Desc 逆向排序
使用排序指令「Order By」來排序時,所得的結果是「從小排到大」,如果我們要「從大排到小」,則可在排序欄位名稱的後面再加上「Desc」指令,例如,依「數學」欄位排序,但是要從分數高的排到分數低的:
  1. Select *  From  transcript Order By 數學 Desc
複製代碼
使用上列的SQL句子向資料庫下命令,即可獲得下圖的結果:(範例ex08_18.php)
[attach]5650[/attach]
圖8-21  依數學分數「從大到小」排序。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)