当前位置: 首页 > news >正文

ORDER BY 排序

1.ASC 从小到大排序
ASC 是对结果集按照字段从小到大排序(升序),以 teacher 表为例,将查询出来的所有结果集按照年龄 age 从小到大排序:

 SELECT * FROM teacher ORDER BY age ASC;

执行结果如下图:

在这里插入图片描述

2.DESC 从大到小排序

DESC 是对结果集按照字段从大到小排序(降序),以 teacher 表为例,将查询出来的所有结果集按照年龄 id 从大到小排序:

SELECT * FROM teacher ORDER BY id DESC;

执行结果如下图:

在这里插入图片描述

3.使用多字段混合排序

以 teacher 表为例,将查询出来的结果集按照 age 从大到小排序之后,再按照 id 字段从小到大排序:

SELECT * FROM teacher ORDER BY age DESC,id ASC;

执行结果如下图:
在这里插入图片描述

4.对字符串类型字段排序

前面排序的 age 和 id 字段是 int 类型,为了演示方便这里先插入几个 name 字段为英文名的教师测试数据,并对 name 字段排序,插入数据 SQL 语句如下:

INSERT INTO teacher
(name,age,id_number,email)
VALUES
('Tom',22,'42011720200604077X''tom@qq.com'),
('Jack',23,'42011720200604099X''jack@qq.com'),
('Mary',24,'42011720200604020X''mary@qq.com'),
('Timo',25,'42011720200604022X''timo@qq.com'),
('Faker',21,'42011720200604033X''faker@qq.com';

对查询结果集按照 name 字段 ASC 升序排序:

SELECT * FROM teacher ORDER BY name ASC;

执行结果如下图:

在这里插入图片描述

Tips:如上图所示,使用 ASC 对结果集按照 name 字段升序,其实是对 name 字段字符串编码的排序,英文字符排序在前,中文在后,其中排序规则是按照字符 ASCII码 对应值的大小排序的。

5.小结

ORDER BY 对查询结果集按照值字段排序,其中包括 ASC 升序和 DESC 降序,需要注意的是各种数据的字符集可能不同,如中文字符编码 GBK编码、utf-8编码, 若需要经常对字符串类型字段进行排序,可以给该字符串字段加上普通 Bree索引,二级索引树字符串默认存储方式是按照字符集升序存储的(MySQL8.0 可自定义排序存储方式),所以有索引的字段排序性能比没有索引的字段排序性能好。

http://www.mrgr.cn/news/52764.html

相关文章:

  • 采用全差分放大器的差分输入至差分输出电路
  • ES6面试题:(第一天)
  • Linux——网络层协议
  • UTHash(三): UTArray基础与高级用法
  • 在软件开发中低耦合和高内聚是什么,如何实现,请看文章
  • C++ 函数的参数传递
  • repo 命令大全(第一篇 repo init)
  • 【Linux线程】Linux多线程编程:深入理解线程互斥与同步机制
  • HDLBits中文版,标准参考答案 | 5 Verification: Writing Testbenches | 验证:编写测试平台
  • 【C++贪心】1775. 通过最少操作次数使数组的和相等|1850
  • 架构师之路-学渣到学霸历程-20
  • 《ESP32调试异常集锦》之移植I2C程序时i2c_master_cmd_begin返回-1
  • fiddler抓包23_重放请求(Replay)
  • 对比长安链、FISCO BCOS、蚂蚁链
  • OpenAI推出Swarm框架:简化多AI智能体系统交互
  • Python | Leetcode Python题解之第491题非递减子序列
  • 【JavaEE】【多线程】volatile,wait/notify
  • 【Qunar风控安全产品的探索之路】
  • 【算法】力扣:K个一组反转链表
  • R01 vue+springboot 高考志愿推荐AI问答大数据平台