Mysql必知必會Note-第五章 排序檢索資料.md
阿新 • • 發佈:2018-12-18
排序資料
SQL檢索出的資料預設按照底層中出現的順序顯示,一般是資料最初的新增順序,但這種順序會受到資料更新的影響。因此,很多情景下都需要我們明確排序的順序,這裡我們可以通過ORDER BY子句實現。ORDER BY可以根據一列或多列的值進行排序,例項如下:
// 指示對prod_name列以字母順序排序
SELECT prod_name
FROM products
ORDER BY prod_name;
PS:通常我們選擇通過非選擇列進行排序
ORDER BY 支援多列排序,基本語法:ORDER BY column1, column2
,按多列排序時,排序完全按規定的順序進行,若column1列的值都是唯一的,就不再需要按column2排序。
指定排序方向
資料預設升序,可以通過指定DESC關鍵字實現降序順序,例項如下:
// 按價格以降序排序產品(最貴的排在最前面)
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC;
注意:
- 根據多列進行排序時,因為DESC和ASC關鍵字只應到前置它的列,需要在每個列名前指定DESC或ASC(升序,預設)
- Mysql預設排序時不區分字母大小寫,即A被視為和a相同
補充: ORDER BY字句結合LIMIT關鍵字可以用來找列中的最值,如下:
// 將價格降序排列,並返回第一行,即最大值
SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;
但要注意的是字句以及關鍵字間的位置,這裡要求ORDER BY子句在FROM字句後,LIMIT關鍵字在ORDER BY字句後。