工学1号馆

home

« | 返回首页 | »

MySQL排序检索数据

By Wu Yudong on June 30, 2017

本文将讲授如何使用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、 指定排序方向

数据排序不限于升序排序(从AZ)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从ZA)顺序排序。为了进行降序排序,必须指定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 BYLIMIT的组合,能够找出一个列中最高或最低的值。下面的例子演示如何找出最昂贵物品的值:
mysql> select prod_price
-> from products
-> order by prod_price desc
-> limit 1;

如果文章对您有帮助,欢迎点击下方按钮打赏作者

Comments

No comments yet.
To verify that you are human, please fill in "七"(required)