前提:使用《MySql006——检索数据:基础select语句(使用products表、查询单列、多列、所有列、DISTINCT去除重复行、LIMIT限制返回结果的行数、了解完全限定)》中创建的products表

mysql数据表最高值命令 mysql怎么排序最高和最低_性能优化

一、抛出问题

如果我们向获得products表中所有商品名称和价格,可以这些检索数据

SELECT 
   prod_name, prod_price
FROM
    products;

mysql数据表最高值命令 mysql怎么排序最高和最低_最小值_02

但是发现这些价格是乱序的,即没有从大到小,或从小到大输入

二、使用ORDER BY子句排序数据

为了排序 SELECT子句检索的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,根据取的列对输出结果进行排序。

2.1、按一个列排序

2.1.1、默认按从小到大排序

SELECT 
   prod_name, prod_price
FROM
    products
ORDER BY prod_price;	-- 使用ORDER BY根据prod_price从小到大排序
-- 实际上面应该是这样 ORDER BY prod_price ASC; 即隐藏了ASC

mysql数据表最高值命令 mysql怎么排序最高和最低_数据_03

2.1.2、指定按从小到大排序

在ORDER BY子句中指定ASC关键字

SELECT 
    prod_name, prod_price
FROM
    products
ORDER BY prod_price ASC; -- 指定ASC关键字

mysql数据表最高值命令 mysql怎么排序最高和最低_MySQL_04

2.1.3、指定按从大到小排序

在ORDER BY子句中指定DESC关键字

SELECT 
   prod_name, prod_price
FROM
    products
ORDER BY prod_price DESC; -- 指定DESC关键字

mysql数据表最高值命令 mysql怎么排序最高和最低_数据_05

2.2、按多个列排序

2.2.1、默认按从小到大排序

下面的代码检索3个列,并按其中两个列对结果进行排序——首先按价格,然后再按名称排序。

SELECT 
   prod_id, prod_price, prod_name
FROM
    products
ORDER BY prod_price, prod_name;

mysql数据表最高值命令 mysql怎么排序最高和最低_数据_06

重点理解:仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

2.2.2、指定排序顺序

SELECT 
    prod_id, prod_price, prod_name
FROM
    products
ORDER BY prod_price ASC , prod_name DESC;

mysql数据表最高值命令 mysql怎么排序最高和最低_性能优化_07

三、取最大值/最小值

使用ORDER BY和LIMIT的组合能够找出一个列中最高或最低的值。

3.1、取最大值

SELECT 
    prod_id, prod_price, prod_name
FROM
    products
ORDER BY prod_price DESC
LIMIT 1;

mysql数据表最高值命令 mysql怎么排序最高和最低_数据_08

3.2、取最小值

SELECT 
    prod_id, prod_price, prod_name
FROM
    products
ORDER BY prod_price ASC
LIMIT 1;

mysql数据表最高值命令 mysql怎么排序最高和最低_数据_09