1. 程式人生 > 實用技巧 >SQL 排序檢索資料

SQL 排序檢索資料


使用 SELECT 語句返回某個資料庫表的單個列,是沒有特定順序的

SELECT prod_name FROM products;

資料一般以最初新增到表的順序展現,如果資料後來進行過更新或刪除,則此順序將會受到 MySQL 重用回收儲存空間的影響。因此,如果不明確規定排序順序,則不應該假定檢索出的資料的順序有意義

SELECT prod_name FROM products ORDER BY prod_name;

這條語句指示 MySQL 對 prod_name 列以字母順序排序資料。ORDER BY 自居使用的列可以是將顯示的列,也可以不是

如果要按多個列排序,只要指定列名,列名之間用逗號隔開。排序完全按規定的順序進行

SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;

如果希望指定排序方向,比如降序,可以指定 DESC 關鍵字

SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC;

如果有多個列排序,只要將 DESC 關鍵字直接應用到列名後面即可,這樣只對 DESC 前面的列名起作用

SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC, prod_name;

與 DESC 相反的關鍵字是 ASC,升序是預設的,可以不指定

下面看一個例題,使用 ORDER BY 和 LIMIT 的組合,找出一個列中最高或最低的值

SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;