MySQL ORDER BY:对查询结果进行排序

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL ORDER BY:对查询结果进行排序

在 MySQL SELECT 语句中,ORDER BY 子句主要用来将结果集中的数据按照一定的顺序进行排序。

其语法格式为:

ORDER BY {<列名> | <表达式> | <位置>} [ASC|DESC]

语法说明:

1 列名

指定用于排序的列。可以指定多个列,列名之间用逗号分隔。

2 表达式

指定用于排序的表达式。

3 位置

指定用于排序的列在 SELECT 语句结果集中的位置,通常是一个正整数。

4 ASC|DESC

关键字 ASC 表示按升序分组,关键字 DESC 表示按降序分组,其中 ASC 为默认值。这两个关键字必须位于对应的列名、表达式、列的位置之后。

使用 ORDER BY 子句应该注意以下几个方面:

  • ORDER BY 子句中可以包含子查询。
  • 当排序的值中存在空值时,ORDER BY 子句会将该空值作为最小值来对待。
  • 当在 ORDER BY 子句中指定多个列进行排序时,MySQL 会按照列的顺序从左到右依次进行排序。
  • 查询的数据并没有以一种特定的顺序显示,如果没有对它们进行排序,则将根据插入到数据表中的顺序显示。使用 ORDER BY 子句对指定的列数据进行排序。

【实例1】查询vtl_usage表中的vtl_Used_Space字段值,并对其进行排序,输入的SQL语句和执行结果如下所示。

mysql> select * from vtl_usage  order by vtl_Used_Space limit 1,10;
+-----+--------------+---------------------+----------------+---------------------+
| id  | vtl_ip       | vtl_Available_Space | vtl_Used_Space | add_time            |
+-----+--------------+---------------------+----------------+---------------------+
| 342 | 10.91.74.22 | 366.04              | 143.96         | 2019-06-24 00:00:00 |
| 348 | 10.91.74.22 | 365.99              | 144.01         | 2019-06-26 00:00:00 |
| 360 | 10.91.74.22 | 365.98              | 144.02         | 2019-06-30 00:00:00 |
| 354 | 10.91.74.22 | 365.86              | 144.14         | 2019-06-28 00:00:00 |
| 363 | 10.91.74.22 | 365.84              | 144.16         | 2019-07-08 00:00:00 |
| 381 | 10.91.74.22 | 365.78              | 144.22         | 2019-07-07 00:00:00 |
| 384 | 10.91.74.22 | 365.78              | 144.22         | 2019-07-08 00:00:00 |
| 366 | 10.91.74.22 | 365.75              | 144.25         | 2019-07-02 00:00:00 |
| 351 | 10.91.74.22 | 365.69              | 144.31         | 2019-06-27 00:00:00 |
| 369 | 10.91.74.22 | 365.68              | 144.32         | 2019-07-03 00:00:00 |
+-----+--------------+---------------------+----------------+---------------------+
10 rows in set

【实例2】查询vtl_usage表中的vtl_Used_Spacevtl_Available_Space字段值,先按 vtl_Available_Space排序,再按vtl_Used_Space`排序,输入的 SQL 语句和执行结果如下所示。

mysql> select * from vtl_usage  order by vtl_Available_Space,vtl_Used_Space limit 1,10
;
+------+--------------+---------------------+----------------+---------------------+
| id   | vtl_ip       | vtl_Available_Space | vtl_Used_Space | add_time            |
+------+--------------+---------------------+----------------+---------------------+
|  886 | 10.91.74.85 | 100.20              | 229.80         | 2019-12-23 00:00:00 |
|  736 | 10.91.74.85 | 100.52              | 229.49         | 2019-11-03 00:00:00 |
| 1111 | 10.91.74.85 | 100.54              | 229.47         | 2020-03-07 00:00:00 |
|  919 | 10.91.74.85 | 101.50              | 228.50         | 2020-01-03 00:00:00 |
| 1084 | 10.91.74.85 | 102.06              | 227.95         | 2020-02-27 00:00:00 |
|  880 | 10.91.74.85 | 102.28              | 227.72         | 2019-12-21 00:00:00 |
|  883 | 10.91.74.85 | 103.14              | 226.87         | 2019-12-22 00:00:00 |
| 1081 | 10.91.74.85 | 103.84              | 226.17         | 2020-02-26 00:00:00 |
| 1078 | 10.91.74.85 | 104.67              | 225.33         | 2020-02-25 00:00:00 |
|  574 | 10.91.74.85 | 104.80              | 225.20         | 2019-09-10 00:00:00 |
+------+--------------+---------------------+----------------+---------------------+
10 rows in set
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
40 9
|
11天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
37 3
|
17天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
81 1
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
18天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
38 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
1月前
|
SQL 搜索推荐 关系型数据库
MySQL 如何实现 ORDER BY 排序?
本文详细解析了MySQL中`ORDER BY`的实现原理及优化方法。通过解析与优化、执行及多种优化技术,如索引利用、内存排序、外部排序等,帮助你提升排序性能。了解其背后的机制,可显著优化查询效率。
28 4
|
18天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
30 0
|
1月前
|
存储 SQL 关系型数据库
MySQL 给查询结果增列并自定义列数据
MySQL 给查询结果增列并自定义列数据
419 2