前文链接:
《MySQL必知必会》——书中表的生成
《MySQL必知必会》——第三章(了解数据库和表) 关键词:USE、SHOW
《MySQL必知必会》——第四章(检索数据) 关键词:SELECT
5.1 单一列排序
ORDER BY 语句可以对我们检索出的数据进行排序,具体举例如下:
# 我们对表products 中的 prod_name 列排序输出
SELECT prod_name FROM products order by prod_name;
5.2 多列排序
SELECT prod_id, prod_price, prod_name FROM products order by prod_price, prod_name;
我们按照上面的举例说明,我们对于选取的 prod_id, prod_price, prod_name这三列数据,先按照prod_price去排序,当多行具有相同的prod_price时,才按照prod_name去排序,以此类推!
5.3指定排序方向
ORDER BY语句默认的是升序,若要降序,我们要加上DESC关键词,具体我们举例看看:
单列降序
# 按照 prod_price 列降序输出:
SELECT prod_id, prod_price, prod_name FROM products order by prod_price DESC;
多列降序
先看个例子
SELECT prod_id, prod_price, prod_name FROM products order by prod_price DESC, prod_name;
这时数据按照 prod_price 降序输出,对于具有相同 prod_price 的行,再按照 prod_name 升序给出!
注意:
- DESC 只作用于直接位于其前面的列命
- 对于多列排序,若都想降序输出,那么列名之后都应加上DESC
下面的语句,先按照prod_price 降序,对于具有相同值得prod_price 数据,再按照 prod_name 降序输出!
# 按照prod_price 和 prod_name 降序
SELECT prod_id, prod_price, prod_name FROM products order by prod_price DESC, prod_name DESC;
获取最大最小值
我们可以将ORDER BY 和 LIMIT 结合获取最大值或最小值,例如:
# 获取最小值
SELECT prod_price FROM products order by prod_price LIMIT 1;
# 获取最大值
SELECT prod_price FROM products order by prod_price DESC LIMIT 1;
总结:
- SELECT 列名 FROM 表名 ORDER BY 列名:按照列名升序输出
- SELECT 列名 FROM 表名 ORDER BY 列名 DESC:按照列名降序输出
- SELECT 列名 FROM 表名 ORDER BY 列名 LIMIT 1:返回最小值
- SELECT 列名 FROM 表名 ORDER BY 列名 DESC LIMIT 1:返回最大值