通过条件查询语句可以查询到符合用户需求的数据,但是查询到的数据一般都是按照数据最初被添加到表中的顺序来显示。为了使查询结果的顺序满足用户的要求,MySQL 提供了 ORDER BY 关键字来对查询结果进行排序。
在实际应用中经常需要对查询结果进行排序,比如,在网上购物时,可以将商品按照价格进行排序;在医院的挂号系统中,可以按照挂号的先后顺序进行排序等。
ORDER BY 关键字语法格式如下:
ORDER BY <字段名> [ASC|DESC]
语法说明如下。
字段名:表示需要排序的字段名称,多个字段时用逗号隔开。
ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC为默认值。
注意**:**
- ORDER BY 关键字后可以跟子查询(关于子查询后面教程会详细讲解,这里了解即可)。
- 当排序的字段中存在空值时,ORDER BY 会将该空值作为最小值来对待。
ORDER BY 指定多个字段进行排序时,MySQL 会按照字段的顺序从左到右依次进行排序。
单字段排序
多字段排序
注意:在对多个字段进行排序时,排序的第一个字段必须有相同的值,才会对第二个字段进行排序。如果第一个字段数据中所有的值都是唯一的,MySQL 将不再对第二个字段进行排序。
- 默认情况下,查询数据按字母升序进行排序(A~Z),但数据的排序并不仅限于此,还可以使用 ORDER BY 中的 DESC 对查询结果进行降序排序(Z~A)。
- DESC 关键字只对前面的列进行降序排列,在这里只对 name 字段进行降序。因此,name 按降序排序,而 age仍按升序排序。如果想在多个列上进行降序排序,必须对每个列指定 DESC 关键字。