目标:
- 怎么对数据进行排序
- 按单列排序
- 按多个列排序
- 指定排序方向
-单列
-多列 - 使用ORDER BY与LIMIT组合,找出列中最高或最低值
一、使用ORDER BY对数据进行排序
通过SELECT检索出来的数据是没有特定顺序的。所以为了明确SELECT语句检索出来的数据,可使用ORDER BY子句。
ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
SELECT 列名1, 列名2, ... , 列名n FROM 表名 ORDER BY 列名X;
注意:ORDER BY子句中所使用的列不一定是被检索的列,只要是表中的列即可。
例如:
二、按多个列排序
SELECT 列名1, 列名2, ... , 列名n FROM 表名 ORDER BY 列名X1, 列名X2, ...;
有的时候需要排序多个列,例如想按用户创建时间和用户名两个列进行排序,检索出的数据会先按创建时间为第一排序条件,当第一排序条件相等时按第二条件排序,如此类推。如图:
三、指定排序方向
我们使用ORDER BY检索出的数据默认是按照升序排序的,若需要进行降序排序,则需要使用关键字DESC。
按单个列排序:
SELECT 列名1, 列名2, ... , 列名n FROM 表名 ORDER BY 列名X DESC;
按多个列排序:
例如以降序排序创建时间(最新创建的),然后再对用户名进行排序。
注意:DESC只应用到直接位于其前面的列名。
与DESC相反的是ASC,因为ORDER BY默认就是升序,所以ASC没什么作用。
四、使用ORDER BY与LIMIT组合
SELECT 列名 FROM 表名 ORDER BY 列名 LIMIT N;
OR
SELECT 列名 FROM 表名 ORDER BY 列名 DESC LIMIT N;
使用 ORDER BY和LIMIT的组合,找出一列中最高/低值的前N个值