前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL | 如何对查询结果集进行排序

MySQL | 如何对查询结果集进行排序

作者头像
Zkeq
发布2022-05-18 15:29:19
6.2K0
发布2022-05-18 15:29:19
举报
文章被收录于专栏:ZkeqZkeq
数据操作语言:结果集排序
  • 如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用 ORDER BY 子句。
代码语言:javascript
复制
SELECT ...... FROM ...... ORDER BY 列名 [ASC | DESC];

代码语言:javascript
复制
SELECT ename,sal FROM t_emp ORDER BY sal;

代码语言:javascript
复制
SELECT empno,ename,sal,deptno FROM t_emp ORDER BY sal DESC;

排序关键字
  • ASC 代表升序(默认),DESC 代表降序
  • 如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按日期大小排序,如果是字符串就按照字符集序号排序。
代码语言:javascript
复制
SELECT ename,sal FROM t_emp ORDER BY hiredate DESC;

代码语言:javascript
复制
SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY ename ASC;
SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY hiredate DESC;

排序字段内容相同的情况
  • 默认情况下,如果两条数据排序字段内容相同,那么排序会是什么样子?
xxxxxxxxxx CREATE TABLE t_message( id INT UNSIGNED PRIMARY KEY, content VARCHAR(200) NOT NULL, type ENUM(“公告”, “通报”, “个人通知”) NOT NULL, create_time TIMESTAMP NOT NULL, INDEX idx_type (type));​DROP INDEX idx_type ON t_message;CREATE INDEX idx_type ON t_message(type);SHOW INDEX FROM t_message;ALTER TABLE t_message ADD INDEX idx_type(type);SQL
  • 我们可以使用 ORDER BY 规定首要排序条件和次要排序条件。 数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序。
2
2
代码语言:javascript
复制
SELECT empno,ename,sal,hiredate FROM t_emp ORDER BY sal DESC,hiredate ASC;

代码语言:javascript
复制
SELECT 
	empno,ename,deptno,sal
FROM t_emp
ORDER BY deptno,sal DESC;

代码语言:javascript
复制
SELECT 
	empno,ename,sal
FROM t_emp ORDER BY sal DESC LIMIT 0,5;

排序 + 分页
  • ORDER BY 子句书写的时候放在 LIMIT 子句的前面 FROM -> SELECT -> ORDER BY -> LIMIT
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据操作语言:结果集排序
  • 排序关键字
  • 排序字段内容相同的情况
  • xxxxxxxxxx CREATE TABLE t_message( id INT UNSIGNED PRIMARY KEY, content VARCHAR(200) NOT NULL, type ENUM(“公告”, “通报”, “个人通知”) NOT NULL, create_time TIMESTAMP NOT NULL, INDEX idx_type (type));​DROP INDEX idx_type ON t_message;CREATE INDEX idx_type ON t_message(type);SHOW INDEX FROM t_message;ALTER TABLE t_message ADD INDEX idx_type(type);SQL
  • 排序 + 分页
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档