MYSQL,在 having 语句可以直接使用 select 语句里起的别名

众所周知,sql语句特别是DQL语句是有规定的执行顺序的

(7)select 
(8)distinct 字段名1,字段名2...
(5)[fun 字段名]
(1)from 表名
(2)inner|left|right|full|cross join on 连接条件
(3)where 筛选条件
(4)group by 分组条件
(6)having 分组后的筛选条件
(9)order by 排序条件
(10)limit <起始偏移量,条目数>

这个顺序是毋庸置疑的。

按照这个执行顺序,在分组后的过滤having不能够直接使用在select中起的别名。

但是我在写sql时发现居然可以在having中直接使用select语句中起的别名

那是因为

在mysql 5.7.5之前的版本,ONLY_FULL_GROUP_BY sql mode默认不开启在5.7.5或之后的版本默认开启。

如果ONLY_FULL_GROUP_BY sql mode不开启,那么mysql对标准SQL的扩展可以生效。

这样一来,我们在牛客上做sql题,或者您的MYSQL版本在5.7.5以上的同学们,可以放心直接使用这一语法了。

参考:博客园大佬

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值