查看: 91|回复: 0

MySQL 查询数据时,如何使用排序?

[复制链接]

3

主题

8

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-6-9 08:39:17 | 显示全部楼层 |阅读模式


mysql数据排序


在查询数据时,如果没有使用排序操作,默认情况下SQL会按数据添加的顺序来排列查询结果。
要对数据进行排序,需要在select语句后边加上order by 以及排序依据。

▲ 按照排序依据排序可以分为:按照列名排序、列的别名排序、列的编号排序。
▲ 按照顺序升降可以分为:升序排列(由小到大)和降序排列(由大到小),升序排列在排序依据后边加ASC(asc可以省略)、降序排列在排序依据后边加DESC(DESC不能省略),也就是默认情况下是按照升序排列的。
▲ 按照列的多少可以分为:单列排序、多列排序。

现有学生表如下图:


按照年龄由小到大对学生进行排序(单列排序)。

按照列名排序
select * from student order by sage asc;左右拉动查看完整代码

按照列的编号排序
select * from student order by 4 asc;左右拉动查看完整代码

按照列的别名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 asc;左右拉动查看完整代码



先按照性别由男到女排,再按照年龄由大到小排(多列排序)。
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 性别 desc,年龄 desc;左右拉动查看完整代码



先按照年龄由大到小排列,再按照性别由女到男排列(多列排序)。
按照列名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by sage desc,ssex asc;左右拉动查看完整代码

按照列的编号排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 3 desc,4 asc;左右拉动查看完整代码

按照列的别名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 desc,性别 asc;左右拉动查看完整代码



需要注意按照多列排序时,哪列在前哪列在后排出来结果是完全不同的,所以多列排序一定要注意列的顺序。按照列的别名排序时,必须先给列起别名。

<hr/>
今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表