MySQL ORDER BY(排序) 语句

发布时间:2024年01月22日

昨天介绍了 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://blog.csdn.net/weixin_46856842/article/details/135748147
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。