MySQL學習足跡記錄03--ORDER BY,DESC 1.ORDER BY 為了形成對比,這裡先列出不用ORDER BY排序的結果
mysql> SELECT prod_name FROM products; #受MySQL重回收存儲空間的影響, #每次查詢排序的結果可能不同 +----------------+ | prod_name | +----------------+ | .5 ton anvil | | 1 ton anvil | | 2 ton anvil | | Detonator | | Bird seed | | Carrots | | Fuses | | JetPack 1000 | | JetPack 2000 | | Oil can | | Safe | | Sling | | TNT (1 stick) | | TNT (5 sticks) | +----------------+ *用ORDER BY排序 eg: mysql> SELECT prod_name FROM products ORDER BY prod_price; +----------------+ | prod_name | +----------------+ | TNT (1 stick) | | Carrots | | Fuses | | Sling | | .5 ton anvil | | Oil can | | 1 ton anvil | | TNT (5 sticks) | | Bird seed | | Detonator | | 2 ton anvil | | JetPack 1000 | | Safe | | JetPack 2000 | +----------------+ *按多個列排序(先排完A,再從結果中排B) eg: mysql> SELECT prod_name,prod_id,prod_price FROM products ORDER BY prod_price,prod_name; #先按prod_price排序,再從排序結果中價格相同的部分再按prod_name排序 +----------------+---------+------------+ | prod_name | prod_id | prod_price | +----------------+---------+------------+ | Carrots | FC | 2.50 | | TNT (1 stick) | TNT1 | 2.50 | | Fuses | FU1 | 3.42 | | Sling | SLING | 4.49 | | .5 ton anvil | ANV01 | 5.99 | | Oil can | OL1 | 8.99 | | 1 ton anvil | ANV02 | 9.99 | | Bird seed | FB | 10.00 | | TNT (5 sticks) | TNT2 | 10.00 | | Detonator | DTNTR | 13.00 | | 2 ton anvil | ANV03 | 14.99 | | JetPack 1000 | JP1000 | 35.00 | | Safe | SAFE | 50.00 | | JetPack 2000 | JP2000 | 55.00 | +----------------+---------+------------+
2.指定排序方向 *默認的排序方向為升序(ASC),為了進行降序,必須用DESC關鍵字
eg: mysql> SELECT prod_name,prod_id,prod_price FROM products ORDER BY prod_price DESC; +----------------+---------+------------+ | prod_name | prod_id | prod_price | +----------------+---------+------------+ | JetPack 2000 | JP2000 | 55.00 | | Safe | SAFE | 50.00 | | JetPack 1000 | JP1000 | 35.00 | | 2 ton anvil | ANV03 | 14.99 | | Detonator | DTNTR | 13.00 | | TNT (5 sticks) | TNT2 | 10.00 | | Bird seed | FB | 10.00 | | 1 ton anvil | ANV02 | 9.99 | | Oil can | OL1 | 8.99 | | .5 ton anvil | ANV01 | 5.99 | | Sling | SLING | 4.49 | | Fuses | FU1 | 3.42 | | Carrots | FC | 2.50 | | TNT (1 stick) | TNT1 | 2.50 | +----------------+---------+------------+ *先降序,再按多個列排序 mysql> SELECT prod_name,prod_id,prod_price FROM products ORDER BY prod_price DESC,prod_name; +----------------+---------+------------+ | prod_name | prod_id | prod_price | +----------------+---------+------------+ | JetPack 2000 | JP2000 | 55.00 | | Safe | SAFE | 50.00 | | JetPack 1000 | JP1000 | 35.00 | | 2 ton anvil | ANV03 | 14.99 | | Detonator | DTNTR | 13.00 | | Bird seed | FB | 10.00 | | TNT (5 sticks) | TNT2 | 10.00 | | 1 ton anvil | ANV02 | 9.99 | | Oil can | OL1 | 8.99 | | .5 ton anvil | ANV01 | 5.99 | | Sling | SLING | 4.49 | | Fuses | FU1 | 3.42 | | Carrots | FC | 2.50 | | TNT (1 stick) | TNT1 | 2.50 | +----------------+---------+------------+
3.ORDER BY和LIMIT的組合 *SQL語句是由子句組合成的,有些子句是必須的,而有的是可選的。
mysql> SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1; +------------+ | prod_price | +------------+ | 55.00 | +------------+