开发者

MySQL中的ORDER BY问题

开发者 https://www.devze.com 2023-12-03 08:59 出处:网络 作者: 举个栗子?
目录mysql中的ORDER BY​假设我们有这样的一张学生信息表如下首先只用SELECT语句来查询学生的年龄信息我们使用ORDER BY子句对检索的结果进行排序例如我们想要对学生先按班级排序比如我们可以找到所有学生中年龄最小的
目录
  • mysql中的ORDER BY​
    • 假设我们有这样的一张学生信息表如下
    • 首先只用SELECT语句来查询学生的年龄信息
    • 我们使用ORDER BY子句对检索的结果进行排序
    • 例如我们想要对学生先按班级排序
    • 比如我们可以找到所有学生中年龄最小的KLGClAei同学
  • 总结

    MySQL中的ORDER BY​

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

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

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

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

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

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

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

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

    MySQL中的ORDER BY问题

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

    MySQL中的ORDER BY问题

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

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

    MySQL中的ORDER BY问题

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

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

    MySQL中的ORDER BY问题

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

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

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

    MySQL中的ORDER BY问题

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

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

    MySQL中的ORDER BY问题

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

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

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

    MySQL中的ORDER BY问题

    注意:

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

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

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

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

    总结

    ​以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号