1. 程式人生 > >Mysql必知必會Note-第五章 排序檢索資料.md

Mysql必知必會Note-第五章 排序檢索資料.md

排序資料

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;

注意:

  1. 根據多列進行排序時,因為DESC和ASC關鍵字只應到前置它的列,需要在每個列名前指定DESC或ASC(升序,預設)
  2. Mysql預設排序時不區分字母大小寫,即A被視為和a相同

補充: ORDER BY字句結合LIMIT關鍵字可以用來找列中的最值,如下:

// 將價格降序排列,並返回第一行,即最大值
SELECT
prod_price FROM products ORDER BY prod_price DESC LIMIT 1;

但要注意的是字句以及關鍵字間的位置,這裡要求ORDER BY子句在FROM字句後,LIMIT關鍵字在ORDER BY字句後。