如何对Mysql数据表查询出来的结果进行排序

 更新时间:2023年08月01日 17:14:01   作者:SSS4362  
这篇文章主要介绍了如何对Mysql数据表查询出来的结果进行排序问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1 前提

这里采用的都是标准SQL语句,其他数据库的查询出来的结果也可以通过这些语句来进行排序,

2 如何用

2.1 只有一个排序字段

2.1.1 相应的具体语法

SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序规则;
/*
 首先执行FROM子句,再去执行SELECT子句,找到满足条件的数据行,然后再把满足条件的数据行
 按照排序字段1的排序规则进行排序
 其中排序规则有升序和降序,默认不写就是升序
 升序需要写的关键字为ASC,降序需要写的关键字为DESC
 注意:不要和desc 表名搞混,这个是展示表的结构
*/

2.1.2 示例sql语句

SELECT *
FROM student01
ORDER BY age;
/*
把查询得到的student01的所有数据行按照age字段进行升序排列
*/

2.1.3 示例sql语句运行截图

2.2 有多个排序字段

2.2.1 相应的具体语法

SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序规则,需要排序字段2 排序规则.....需要排序字段n 排序规则;
/*
 首先执行FROM子句,再去执行SELECT子句,找到满足条件的数据行,然后再把满足条件的数据行
 按照排序字段1的排序规则进行排序,若排序字段1内容相等,则按照排序字段2进行相应规则的排序
 后面的字段也是依次类推
 其中排序规则有升序和降序,默认不写就是升序
 升序需要写的关键字为ASC,降序需要写的关键字为DESC
 注意:不要和desc 表名搞混,这个是展示表的结构
*/

2.2.2 示例sql语句

SELECT *
FROM student01
ORDER BY age,name DESC;
/*
对SELECT子句中查询到的数据行先进行age字段的升序排序,当age字段年龄相同时,则按照name字段进行降序排列
*/

2.2.3 示例sql语句运行截图

3 补充说明

3.1 ORDER BY子句里面也可以写别名

3.1.1 基本语法

SELECT 字段1 AS '别名1',字段2 AS '别名2'...字段n AS '别名n'
FROM 表名
ORDER BY '别名1' 排序规则,'别名2' 排序规则....'别名n' 排序规则n;

3.1.2 示例sql语句

SELECT name AS '姓名',age AS '年龄'
FROM student01
ORDER BY 年龄 ASC,姓名 DESC;
/*
如果别名是带单引号的中文的话,在ORDER BY子句中使用别名不用加上单引号
*/

3.1.3 示例sql语句运行截图

3.2 ORDER BY子句的执行顺序

ORDER BY子句的执行顺序永远在最后,再具体一点来说就是,ORDER BY子句的执行顺序永远在SELECT 子句的执行之后

理由:

因为你得把筛选过、已经分组完成后的数据行拿到后才能进行排序,不然你先排序,然后再去分组,然后再还是要去排序,那这样之前的排序操作就没有任何意义了

3.3 ORDER BY子句虽然可以使用列编号进行排序(从1开始)

但是不建议这么用,因为阅读体验感极差

3.3.1 基本语法

SELECT 字段1,字段2 ...字段n
FROM 表名
ORDER BY 列编号 排序规则,列编号 排序规则....列编号 排序规则n;
/*
列编号从1开始,依次递增,其中1代表数据库的第一列即为数据表的第一个字段所在的列
*/

3.3.2 示例sql语句

SELECT name,age
FROM student01
ORDER BY 2,1 DESC;
/*
列编号这种写法建议不要写,因为阅读体验感极差,然后知道有这个用法
就行,看见别人写这种写法的话,只要自己能看懂就行
*/

3.3.3 示例sql语句运行截图

3.4 如果排序的字段里面有null值的话

会把null值放在最前面(升序)或者最后面(降序)

3.4.1 示例sql代码

SELECT *
FROM student01
ORDER BY age DESC;

3.4.2 示例sql代码运行截图

3.5 ORDER BY可以使用SELECT 语句中的所有字段

也可以使用聚合函数

3.5.1 示例sql代码

SELECT name
FROM student01
ORDER BY age ASC;
/*
ORDER BY中参与排序的字段可以是student01表中的任意一个字段
*/

3.5.2 示例sql代码运行截图

总结

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

相关文章

  • Jmeter如何获取jtl文件中所有的请求报文详解

    Jmeter如何获取jtl文件中所有的请求报文详解

    JMeter的可以创建一个包含测试运行结果的文本文件,这些通常称为JTL文件,因为这是默认扩展名,但可以使用任何扩展名,这篇文章主要给大家介绍了关于Jmeter如何获取jtl文件中所有的请求报文的相关资料,需要的朋友可以参考下
    2021-09-09
  • 基于java中cookie和session的比较

    基于java中cookie和session的比较

    下面小编就为大家带来一篇基于java中cookie和session的比较。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • java中out.print和out.write的方法

    java中out.print和out.write的方法

    本文用一个小例子说明java out.print和out.write的方法,大家参考使用吧
    2013-11-11
  • java 如何实现多语言配置i18n

    java 如何实现多语言配置i18n

    这篇文章主要介绍了java 如何实现多语言配置i18n的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • InputStream数据结构示例解析

    InputStream数据结构示例解析

    这篇文章主要为大家介绍了InputStream数据结构示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Springboot配置文件内容加密代码实例

    Springboot配置文件内容加密代码实例

    这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java并发工具辅助类代码实例

    Java并发工具辅助类代码实例

    这篇文章主要介绍了Java并发工具辅助类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java实战之酒店人事管理系统的实现

    Java实战之酒店人事管理系统的实现

    这篇文章主要介绍了如何用Java实现酒店人事管理系统,文中采用的技术有:JSP、Spring、SpringMVC、MyBatis等,感兴趣的小伙伴可以学习一下
    2022-03-03
  • 解决Maven的pom.xml中设置repository不起作用问题

    解决Maven的pom.xml中设置repository不起作用问题

    这篇文章主要介绍了解决Maven的pom.xml中设置repository不起作用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 关于Idea中的.properties文件显示问题

    关于Idea中的.properties文件显示问题

    这篇文章主要介绍了关于Idea中的.properties文件显示问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论