使用SELECT 的order by子句能够对查询结果进行排序。mysql
确保ORDER BY子句在SELECT语句的最后,不然会出现错误。sql
示例:spa
查询产品名称并以字母顺序排序:.net
mysql> SELECT prod_name from Products ORDER BY prod_name; +---------------------+
| prod_name | +---------------------+
| 12 inch teddy bear |
| 18 inch teddy bear |
| 8 inch teddy bear |
| Bird bean bag toy |
| Fish bean bag toy |
| King doll |
| Queen doll |
| Rabbit bean bag toy |
| Raggedy Ann | +---------------------+
9 rows in set (0.00 sec)
以价格升序排序:code
mysql> SELECT prod_name,prod_price from Products ORDER BY prod_price; +---------------------+------------+
| prod_name | prod_price | +---------------------+------------+
| Fish bean bag toy | 3.49 |
| Bird bean bag toy | 3.49 |
| Rabbit bean bag toy | 3.49 |
| Raggedy Ann | 4.99 |
| 8 inch teddy bear | 5.99 |
| 12 inch teddy bear | 8.99 |
| King doll | 9.49 |
| Queen doll | 9.49 |
| 18 inch teddy bear | 11.99 | +---------------------+------------+
9 rows in set (0.00 sec)
价格降序排序:排序
mysql> SELECT prod_name,prod_price FROM Products ORDER BY prod_price DESC; +---------------------+------------+
| prod_name | prod_price | +---------------------+------------+
| 18 inch teddy bear | 11.99 |
| King doll | 9.49 |
| Queen doll | 9.49 |
| 12 inch teddy bear | 8.99 |
| 8 inch teddy bear | 5.99 |
| Raggedy Ann | 4.99 |
| Fish bean bag toy | 3.49 |
| Bird bean bag toy | 3.49 |
| Rabbit bean bag toy | 3.49 | +---------------------+------------+
9 rows in set (0.00 sec)
按多个列排序的时候,先按第一列排序,第一列中有相同值,相同值的记录再按第二列排序;若是第一列都是惟一的,则再也不按第二列排序。以下示例:ci
mysql> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name; +---------+------------+---------------------+
| prod_id | prod_price | prod_name | +---------+------------+---------------------+
| BNBG02 | 3.49 | Bird bean bag toy |
| BNBG01 | 3.49 | Fish bean bag toy |
| BNBG03 | 3.49 | Rabbit bean bag toy |
| RGAN01 | 4.99 | Raggedy Ann |
| BR01 | 5.99 | 8 inch teddy bear |
| BR02 | 8.99 | 12 inch teddy bear |
| RYL01 | 9.49 | King doll |
| RYL02 | 9.49 | Queen doll |
| BR03 | 11.99 | 18 inch teddy bear | +---------+------------+---------------------+
9 rows in set (0.00 sec)
上面查询先依据价格排序,价格相同的按prod_name字典顺序排序。
也能够使用位置代替排序列名,上述sql语句还能够这样写:get
mysql> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY 2,3;
使用位置表明列名,优势是不用从新输入列名,缺点是列名更改时会形成错误。产品
ORDER BY查询默认是升序排序,降序能够加上DESC,好比按价格由高到低排序:it
mysql> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price DESC,prod_name; +---------+------------+---------------------+
| prod_id | prod_price | prod_name | +---------+------------+---------------------+
| BR03 | 11.99 | 18 inch teddy bear |
| RYL01 | 9.49 | King doll |
| RYL02 | 9.49 | Queen doll |
| BR02 | 8.99 | 12 inch teddy bear |
| BR01 | 5.99 | 8 inch teddy bear |
| RGAN01 | 4.99 | Raggedy Ann |
| BNBG02 | 3.49 | Bird bean bag toy |
| BNBG01 | 3.49 | Fish bean bag toy |
| BNBG03 | 3.49 | Rabbit bean bag toy | +---------+------------+---------------------+
9 rows in set (0.00 sec)
DESC只对在它前面的一个列名有做用,MySQL> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name DESC;
对prod_price无效:
mysql> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name DESC; +---------+------------+---------------------+
| prod_id | prod_price | prod_name | +---------+------------+---------------------+
| BNBG03 | 3.49 | Rabbit bean bag toy |
| BNBG01 | 3.49 | Fish bean bag toy |
| BNBG02 | 3.49 | Bird bean bag toy |
| RGAN01 | 4.99 | Raggedy Ann |
| BR01 | 5.99 | 8 inch teddy bear |
| BR02 | 8.99 | 12 inch teddy bear |
| RYL02 | 9.49 | Queen doll |
| RYL01 | 9.49 | King doll |
| BR03 | 11.99 | 18 inch teddy bear | +---------+------------+---------------------+
9 rows in set (0.00 sec)