mysql中grade字段降序排列_Mysql order by 多个字段排序
复现问题场景
为了说明问题,模拟示例数据库表students,效果同实例。
如下语句Sql_1:SELECT * FROM students st ORDER BY st.sAge, st.sGrade DESC;
预期结果:
sAge和sGrade两个字段都按降序排列
实际结果:
sAge按升序排序,sGrade按降序排列
分析原因:
order by 多个字段时,Sql语法理解错误导致查询结果集与期望不符。
默认升序
MySql中,order by 默认是按升序排列的。
示例语句Sql_2:SELECT * FROM students st ORDER BY st.sAge;
查询结果集:
显然,不写排序方式,默认是升序。
多个字段时,各自定义升降序
MySql中,order by 多个字段时,需要各自分别定义升降序。
当然,正是本文开始处没有按此语法写Sql语句造成Bug的原因。
示例语句Sql_3:SELECT * FROM students st ORDER BY st.sAge DESC, st.sGrade DESC;
查询结果集:
显然,Sql_1想要实现Sql_3的结果是错误的。因为不写排序方式默认是升序。
多个字段时,按先后顺序排优先级
MySql中,order by 多个字段时,按字段先后顺序排优先级。
以上的示例中,我们只使用了两个字段,下面使用三个字段验证一下这个规则。
按sAge升序、sGrade降序、sStuId降序查询
示例语句Sql_4:SELECT * FROM students st ORDER BY st.sAge ASC, st.sGrade DESC, st.sStuId DESC;
查询结果集:
显然,前两个字段排列顺序确定后,sStuId值没有按降序排列
按sAge升序、sStuId降序、sGrade降序查询
示例语句Sql_5:SELECT * FROM students st ORDER BY st.sAge ASC, st.sStuId DESC, st.sGrade DESC;
查询结果集:
显然,前两个字段排列顺序确定后,sGrade值没有按降序排列
比较Sql_4与Sql_5语句的区别,再对比查询结果集,慢慢体会这两个差异点。
总结
(1)在MySql中,使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。
(2)尤其非常特别重要:默认按升序(ASC)排列。
(3)order by 后可加2个(或多个)字段,字段之间用英文逗号隔开。
(4)若A用升序,B用降序,SQL该这样写:order by A ASC, B DESC; 默认同理,也可以这样写:order by A, B DESC;
(5)若A、B都用降序,必须用两个DESC,order by A DESC, B DESC;
(6)多个字段时,优先级按先后顺序而定。语法:SELECT * FROM 表名 ORDER BY 字段名 ASC, 字段名 DESC;
或语法:SELECT * FROM 表名 ORDER BY 字段名 DESC, 字段名 DESC;
多个字段用英文(,)隔开
mysql中grade字段降序排列_Mysql order by 多个字段排序相关推荐
- mysql中grade字段降序排列_mysql高级查询
[聚合函数] 统计记录的条数 select count(*) from 表名; 求某个字段所有值的总和 select sum(字段名) from 表名; 求某个字段所有值的平均值 select avg ...
- oracle中部门工资降序排列,oracle面试题整理二(10级学员 乔宇整理)
Oracle面试题整理二(10级学员 乔宇整理) 1.查询工资最高的3 名员工信息 select * from (select * from emp order by sal desc) where ...
- MySQL中的升序降序以及字段的升序降序
MySQL中 升序为asc 降序为desc 例如: 升序:select * from 表名 order by 表中的字段 asc(MySQL中默认是升序排列,可不写) : 降序:select ...
- mysql按课程报名人数排序_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...
展开全部 代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group b ...
- mysql按专业人数升序查询_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...
代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group by xue ...
- Java中对数组降序排列
Integer[] arry = {2,6,3,7,8,5,9};/*底层原理利用插入排序+二分查找算法进行排序默认把0索引的数据当作是有序序列,1索引到最后认为是无序的遍历无序的序列得到里面的每一个 ...
- 编写 SQL 查询表格,按创建时间降序排列。
编写 SQL 查询表格,按创建时间降序排列 SELECT [表格名.字段名1][表格名.字段名2]....... FROM [表格名1],[表格名2](中文括号不需要输入,该行后方无需加英文标点,表格 ...
- Excel 2010 SQL应用016 降序排列
目录 源数据表,降序排列 解决方案 ORDER BY子句的使用 源数据表,降序排列 姓名 班级 语文成绩 陈惠婷 五(1)班 75 潘智凤 五(1)班 48 王小丹 五(1)班 55 赖晓红 五(1 ...
- Mysql中的升序和降序以及一个字段升序和一个字段降序
[Mysql中的升序和降序以及一个字段升序和一个字段降序](https://www.wuhaiqiao.com/2020/304.html)
- python降序排列说true不存在_Python数据类型串讲(中)
1.序列 1.1 序列简介 所谓序列,即元素的有序排列.序列中每个位置的元素都有其对应的唯一编号,也就是说我们可以通过元素的位置标识,去搜索到该元素.python中的内建序列有6种:列表.元祖.字符串 ...
最新文章
- 路由器连接帧中继网络的接口是(11),连接双绞线以太网的接口是(12)。 【答案】D B
- python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
- mac ox 10.9 安装eclipse j2ee 集成配置JDK1.6
- f12控制台如何查看consul_Consul初探-从安装到运行
- easyui datagrid
- 异常的分级分类与处理策略
- 关于凸优化的一些简单概念
- java实现base64加密解密
- python在函数内部有没有办法定义全局变量_主函数内部的全局变量python
- java8的spliterator
- 抖音诉腾讯不正当竞争案撤诉;微信更新,表情包上限999个;PyTorch 1.8.1 发布 | 极客头条...
- 【李宏毅2020 ML/DL】P66 Self-supervised Learning
- springboot vue组件写的个人博客系统
- 干货文:企业 IT 基础架构|(精华篇)
- 【设计模式】工厂模式
- 【AD封装】插件电感,变压器(带3D)
- zoj 2476 Total Amount
- 计算机专用英语词汇1500词
- Java基础知识(七) 输入输出流
- python六芒星怎么画_Python Turtle绘画初学编程——六芒星,浪形圈
热门文章
- 1114 Family Property (25 分)
- Linux——tmux和vim常用命令总结(必会)
- spark 集群搭建 详细步骤
- C#网络编程----文件流
- 哪里有c语言在线编程题,在线求C语言编程题答案。。。
- java8 时间加一秒_好好讲讲关于Java中的时间处理
- 晨风机器人php接口程序_微信之后,QQ也开始封杀机器人了!!!
- IIS7.5应用程序池集成模式和经典模式的区别介绍
- 图:用PPT为湖北黄石某电视台及其有线电视定制的知识竞赛题库
- git tag 使用方法(打标签、发布及回滚)