MySQL排序数据之ORDER BY

目标:

  1. 怎么对数据进行排序
  2. 按单列排序
  3. 按多个列排序
  4. 指定排序方向
    -单列
    -多列
  5. 使用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个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值