您的位置:首页 > 数据库 > MySQL

MySQL学习足迹记录03--ORDER BY,DESC

2013-07-09 00:23 513 查看
排序所用到的表格数据,详见:MySQL学习足迹记录02

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 |

+------------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: