【MySQL必知必会】第五章 排序检索数据
1、子句:SQL语句由子句构成,有些子句是必需的,有些子句是可选的。一个子句通常由一个关键字和所提供的数据组成。例子像SELECT语句和FROM子句。
2、排序子句:
ORDER BY
ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
输入:SELECT prod_name
FROM products
ORDER BY prod_name
输出:prod_name
.$ ton anvil
1 ton anvil
Bird seed
Fuses
分析:对prod_name列以字母顺序排序。
3、按多个列排序
输入:SELECT prod_id,prod_price,prod_name
FROM pruducts
ORDER BY prod_price,prod_name
分析:从pruducts表中选中三个列显示,这三个列先按照价格排序,有重复的,再按照名称字母排序。
输出:prod_id prod_price prod_name
FC 2.50 Carrots
TNT1 2.50 TNT
FU1 3.42 Fuses
5、指定排序方向
默认排序为升序(A-Z),还可以设置为降序(Z-A),使用降序要用DESC关键字。
输入:SELECT prod_id,prod_price,prod_name
FROM pruducts
ORDER BY prod_price DESC
输出:prod_id prod_price prod_name
FU1 3.42 Fuses
FC 2.50 Carrots
TNT1 2.50 TNT
多个列排序
输入:SELECT prod_id,prod_price,prod_name
FROM pruducts
ORDER BY prod_price DESC,prod_name;
分析:先按价格降序排,如有重复,再按名字升序排。DESC只作用于它之前的那个列名。升序可以指定关键字ASC(ASCENDING),因为默认即是升序,所以没太大用处。大小写排序问题需向数据库管理员请求帮助,ORDER BY子句解决不了。
6、使用ORDER BY子句和LIMIT子句组合
输入:SELECT prod_name,prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;
输出:prod_name prod_price
Carrorts 55.00
分析:通过ORDER BY 和 LIMIT子句组合,可以找出价格最高的商品。注意上述语句顺序,ORDER BY子句必须在FROM子句之后,LIMIT子句必须在FROM子句和ORDER BY子句之后,顺序错误将产生错误的结果。