本文将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据。
1、排序数据
为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
mysql> select prod_name from products order by prod_name;
对prod_name列以字母顺序排序数据的ORDER BY子句
2、按多个列排序
为了按多个列排序,只要指定列名,列名之间用逗号分开即可。
mysql> select prod_id, prod_price, prod_name
-> from products
-> order by prod_price, prod_name;
重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。 对于上述例子中的输出,仅在多个行具有相同的prod_price 值时才对产品按prod_name进行排序。
3、 指定排序方向
数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定DESC关键字。
mysql> select prod_id, prod_price, prod_name
-> from products
-> order by prod_price desc;
如果打算用多个列排序怎么办?下面的例子以降序排序产品(最贵的在最前面),然后再对产品名排序
mysql> select prod_id, prod_price, prod_name
-> from products
-> order by prod_price desc, prod_name;
DESC关键字只应用到直接位于其前面的列名。
如果想在多个列上进行降序排序, 必须对每个列指定DESC关键字。
与DESC相反的关键字是ASC ( ASCENDING),在升序排序时可以指定它。但实际上, ASC没有多大用处,因为升序是默认的。
使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。下面的例子演示如何找出最昂贵物品的值:
mysql> select prod_price
-> from products
-> order by prod_price desc
-> limit 1;
Comments