MySQL中的ORDER BY问题

 更新时间:2023年12月01日 15:05:15   作者:举个栗子?  
这篇文章主要介绍了MySQL中的ORDER BY问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL中的ORDER BY​

当我们使用SELECT语句查询某个数据库的单个列时,如果不排序,数据一般将以它在底层表中出现的顺序显示。

这可以是数据最初添加到表中的顺序。

但是,如果数据后来进行过更新或删除,则此顺序将会收到MySQL重用回收存储空间的影响。

因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。

关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。

​为了明确地排序用SELECT语句检索出的数据,可以使用ORDER BY子句。

ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

假设我们有这样的一张学生信息表如下

首先只用SELECT语句来查询学生的年龄信息

我们可以看到,在没有对检索出的数据进行排序的情况下,显示的就是我们最初将数据添加到表中的顺序。

我们使用ORDER BY子句对检索的结果进行排序

我们可以看到,检索的结果进行了一个升序的排序。

在默认情况下ORDER BY对检索的结果进行升序(ASC)排序,我们也可以把它改为降序(DESC)排序:

但是,在大多数情况下我们需要按不止一个列进行数据的排序,这时也可以使用ORDER BY子句进行排序。

例如我们想要对学生先按班级排序

同一个班级中的学生再按年龄排序:

可以看到,检索到的数据先按照班级升序对学生进行了排序,对于同一个班级的学生,按照年龄的升序再进行排序。

同理,我们也可以先进行班级的升序排序,再进行年龄的降序排序:

综上我们可以知道,ORDER BY子句可以对一个或多个列进行升序或降序的排序,并且ASC和DESC只对直接位于它前面的列名起作用。

ORDER BY子句还可以和LIMIT一起使用,由此可以找出检索结果中的最大值或者最小值。

比如我们可以找到所有学生中年龄最小的同学

注意:

在给出ORDER BY子句时,应该保证它位于FROM子句之后。

如果使用LIMIT,那么LIMIT必须位于ORDER BY之后。

使用子句的次序不对将产生错误信息。那么LIMIT必须位于ORDER BY之后。

使用子句的次序不对将产生错误信息。

总结

​以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 你知道哪几种MYSQL的连接查询

    你知道哪几种MYSQL的连接查询

    连接(join)查询是将两个查询的结果以“横向对接”的方式合并起来的结果,这篇文章主要给大家介绍了关于MYSQL连接查询的相关资料,需要的朋友可以参考下
    2021-06-06
  • MySQL用truncate命令快速清空一个数据库中的所有表

    MySQL用truncate命令快速清空一个数据库中的所有表

    这篇文章主要介绍了MySQL用truncate命令快速清空一个数据库中的所有表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 当mysqlbinlog版本与mysql不一致时可能导致出哪些问题

    当mysqlbinlog版本与mysql不一致时可能导致出哪些问题

    这篇文章主要介绍了当mysql服务器为mysql5.6时,mysqlbinlog版本不对可能导致出哪些问题,下面通过模拟2种场景分析此类问题,需要的朋友可以参考下
    2015-07-07
  • MySQL约束和事务知识点详细归纳

    MySQL约束和事务知识点详细归纳

    在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务,下面这篇文章主要给大家介绍了关于MySQL约束和事务知识点归纳的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • mysql优化的重要参数 key_buffer_size table_cache

    mysql优化的重要参数 key_buffer_size table_cache

    MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢
    2016-05-05
  • mysql实现表内增加一个字段并赋值

    mysql实现表内增加一个字段并赋值

    这篇文章主要介绍了mysql实现表内增加一个字段并赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • MySQL如何快速导入数据

    MySQL如何快速导入数据

    这篇文章主要介绍了MySQL如何快速导入数据,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySql中的存储引擎和索引

    MySql中的存储引擎和索引

    这篇文章主要介绍了MySql中的存储引擎和索引,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • MySQL几种更新操作的案例分析

    MySQL几种更新操作的案例分析

    本文将通过一个用户账户金额更新的案例分析几种数据更新的操作的优劣,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • MySQL数据库自增主键的间隔不为1的解决方式

    MySQL数据库自增主键的间隔不为1的解决方式

    这篇文章主要介绍了MySQL数据库自增主键的间隔不为1的解决方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论