MySQL 多列排序
MySQL 基础篇
数据准备:
CREATE TABLE `teacher` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; insert into `teacher` (`id`, `name`, `age`) values('1','seven','18'); insert into `teacher` (`id`, `name`, `age`) values('2','qingshan','20'); insert into `teacher` (`id`, `name`, `age`) values('3','zhangsan','33');
比如我们对表中的数据先按照年龄,然后按照姓名排序,怎么写 SQL 呢?
SELECT * FROM teacher ORDER BY age, name;
这里需要注意的是,对于上述例子中的输出,仅在多个行具有相同的 age 值时才对老师按 name 进行排序。如果 age 列中所有的值都是唯一的,则不会按 name 排序。
比如我们需要对表中的数据先按年龄降序,然后按姓名升序排序,怎么写 SQL 呢?
SELECT * FROM teacher ORDER BY age DESC, name;
可以在姓名 name 字段后面加上 ASC(升序) 也可以不加,因为升序是默认的(如果既不指定 ASC 也不指定 DESC ,则假定为 ASC )。
这里需要注意的是,DESC 关键字只应用到直接位于其前面的列名,在上例中,只对 age 列指定 DESC ,对 name 列不指定。因此,age 列以降序排序,而 name 列(在每个价格内)仍然按标准的升序排序。在多个列上降序排序 如果想在多个列上进行降序排序,必须对每个列指定 DESC 关键字。
求关注,求点赞,《架构学习》持续更新、完善、纠正
https://www.yuque.com/yinjianwei/vyrvkf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用