MySQL执行顺序

16 篇文章 1 订阅
本文探讨了MySQL查询的执行顺序,从from、where、groupby、having、select到orderby和limit阶段,并解释了为何别名不能在where子句中使用,但在orderby中可以。原因是别名在select阶段才生成,因此where子句执行时别名尚未定义。了解这些有助于优化SQL查询和避免语法错误。
摘要由CSDN通过智能技术生成

mysql执行顺序如下:

1. from 阶段

2. where 阶段

3. group by 阶段

4. having 阶段

5. select 阶段

6. order by 阶段

7. limit 阶段

 

问题: 为什么别名不可以使用在where中,但可以使用在order by中?

根据mysql的执行顺序,可以知道,上述代码先执行了from score ,再执行了where , 最后执行了select  。 别名产生在第五个查询阶段,别名有了之后,后面的执行阶段才能使用,也就是说,别名只能是第五阶段之后的查询才能使用。因此where total >= 200执行时,还未产生别名total,因此编译出错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值