您的当前位置:首页 >系统运维 >Group By 有哪些注意事项?你知道吗? 正文
时间:2025-11-04 20:56:03 来源:网络整理编辑:系统运维
注意:本文以下内容基于 MySQL 5.7 InnoDB 数据库引擎。1、group by 后面不能加 where在 MySQL 中,所有的 SQL 查询语法要遵循以下语法顺序:selectfromw

注意:本文以下内容基于 MySQL 5.7 InnoDB 数据库引擎。注意知道
在 MySQL 中,注意知道所有的事项 SQL 查询语法要遵循以下语法顺序:
selectfromwheregroup byhavingorder bylimit以上语法顺序是不能前后互换的,否则报错。注意知道比如我们不能在 group by 之后添加 where 查询语句,事项否则会出现如下错误:

语法顺序的注意知道执行是和 MySQL 的 select 语句执行顺序相关的,select 执行先后顺序如下:
from 阶段where 阶段group 阶段having 阶段select 阶段order by 阶段limit 阶段注意:其中 select 比较特殊,事项在进行查询语句编写时,注意知道要写在最前面,事项其余语法顺序要和执行先后顺序保持一致。注意知道
having 和 group by 可以单独使用,注意知道如下查询所示:

当 having 单独使用时,注意知道它的作用和 where 类似,但又有细微的高防服务器不同。比如在 where 中不能使用别名,但 having 和 group by 却可以别名。咱们创建一个测试表来演示一下,建表 SQL 如下:
复制drop table if exists student_score;create table student_score( id int primary key auto_increment comment 主键, name varchar(250) comment 姓名, math decimal(4,1) comment 数学成绩, chinese decimal(4,1) comment 语文成绩);insert into student_score(name,math,chinese) values(张三,50,50),(李四,80,80),(王五,90,90);1.2.3.4.5.6.7.8.表中的数据如下图所示:

当我们使用总成绩别名 total 分别在 where 和 having 中使用时,查询结果如下:

从上述结果可以看出,having 查询可以使用 select 中的别名,而 where 不能使用别名。
除了 having 可以使用别名之外,group by 也可以使用别名,如下图所示:

where 中不能使用别名,这和 MySQL 语句执行顺序有关,MySQL 语句执行顺序如下:
from 阶段where 阶段group 阶段having 阶段select 阶段order by 阶段limit 阶段也就是说,在执行 where 查询时,select 还没执行,因此在 where 中想要使用还未执行的 select 中的别名是不行的。那从上面的WordPress模板执行顺序可以看到,having 执行也在 select 之前,为什么它就可以使用 select 中的别名呢?
这是因为 MySQL 在 5.7.5 之后做了扩展,允许在 having 中使用别名,官方文档中有相应的说明,如下图所示:

MySQL 官方文档地址:
https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html。
PS:group by 能使用别名的原理和 having 类似。
SQL 语句编写一定要遵循此先后顺序:select、from、where、group by、having、order by、limit。其中 having 或 group by 都可单独使用,并且在 MySQL 5.7.5 之后,group by 和 having 可以使用别名查询,但 where 不能使用别名。
iOS11Beta1(探索iOS11Beta1带来的全面升级和创新特性)2025-11-04 20:21
怎么做好域名投资?新手必须要注意这些2025-11-04 20:06
为什么现在中文域名逐步起来了?中文域名有什么趋势?2025-11-04 20:04
域名与商标冲突吗?新手要掌握哪些区别?2025-11-04 20:02
以k快启动安装教程(轻松安装k快启动,提升系统启动速度)2025-11-04 19:46
什么因素可以决定企业域名?有什么攻略可以选择?2025-11-04 19:12
为何免费域名众说纷纭?免费域名到底如何甄别呢?2025-11-04 18:50
对域名投资的看法是怎样的?新手做投资域名什么方法?2025-11-04 18:36
解决电脑网络651错误的有效方法(轻松解决651错误,快速恢复网络连接)2025-11-04 18:29
新手注册一个域名需要多少费用呢?域名价格都一样吗?2025-11-04 18:18
Win10系统如何关闭自动更新(停用Win10系统的自动更新功能以保持更大控制权)2025-11-04 20:26
域名到期续费有啥可注意的?新手必知的域名续费问题2025-11-04 20:21
为什么win域名值得争抢?win域名有什么魅力?2025-11-04 20:00
为什么love域名抢不停?love域名有何寓意?2025-11-04 19:19
如何自动生成Word文档目录的序号(简便有效的方法让你省时省力)2025-11-04 19:08
一般是怎么选择适合自己网站的域名?新手需要知道什么?2025-11-04 18:56
为何投资者都冲高PR域名去?高PR域名有什么特殊意义?2025-11-04 18:47
玩域名有什么建议?新手域名投资需要什么基础?2025-11-04 18:44
三星NX1855镜头的性能与特点(探索三星NX1855镜头的出色画质和创造性能)2025-11-04 18:40
为什么win域名值得争抢?win域名有什么魅力?2025-11-04 18:10