SQL 排序檢索資料
阿新 • • 發佈:2020-12-30
使用 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;