MySQL ORDER BY(排序) 语句

昨天介绍了 MySQL 数据库 UNION 操作符的使用,今天主要讲解下 ORDER BY(排序)语句。

我们知道从 MySQL 表中使用 SELECT 语句来读取数据。如果需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

  • MySQL ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。

语法

老规矩,先介绍一下语法。以下是 SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;
参数说明
  • column1, column2, … 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], … 是用于指定排序顺序的子句。ASC 表示升序(默认),DESC 表示降序。
更多说明
  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE…LIKE 子句来设置条件。

参数介绍完成,接下来通过一些实例来详细介绍下该如何使用。

实例01

-- 2024.01.22 查询登录日志
SELECT * FROM nm_login_log ORDER BY create_date ASC;

-- 解释:单列排序(查询登录日志表中的全部数据,并按“登录时间”升序 ASC 排序)。

在这里插入图片描述

实例02

-- 2024.01.22 查询登录日志
SELECT * FROM nm_login_log ORDER BY create_code ASC,create_date DESC;

-- 解释:多列排序(查询登录日志表中的全部数据,并先按“登录账号”升序 ASC 排序,然后在相同“登录账号”中按“登录时间”降序 DESC 排序)。

在这里插入图片描述

实例03

-- 2024.01.22 查询登录日志
SELECT * FROM nm_login_log ORDER BY 8 DESC,10 ASC;

-- 解释:使用数字表示列的位置(查询登录日志表中的全部数据,并按第8列(create_code)降序 DESC 排序,然后按第10列(create_date)升序 ASC 排序)。

在这里插入图片描述

实例04

-- 2024.01.22 查询价格表
SELECT id,trade_name,price,discount,price * discount AS discounted_price FROM nm_price ORDER BY discounted_price DESC;

-- 解释:使用表达式排序(查询价格表中的“商品名称”和根据“折扣率”计算的折扣后价格,并按折扣后价格降序 DESC 排序)。

在这里插入图片描述

实例05

-- 2024.01.22 查询价格表
SELECT id,trade_name,price,discount FROM nm_price ORDER BY price DESC NULLS LAST;

-- 解释:使用 NULLS FIRST 或 NULLS LAST 处理 NULL 值(查询价格表中的“商品名称”和“价格”,并按“价格”降序 DESC 排序,将 NULL 值排在最后)。

在这里插入图片描述

ORDER BY 子句是一个强大的工具,可以根据不同的业务需求对查询结果进行排序。在实际应用中,注意选择适当的列和排序顺序,以获得符合期望的排序效果。

以上内容即为 MySQL 数据库使用 ORDER BY 进行排序的简单讲解,下期再见。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=howee797dqyd

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值