mysql的语句执行顺序
mysql的语句执行顺序
书中迷梦 发表于1年前
mysql的语句执行顺序
  • 发表于 1年前
  • 阅读 37
  • 收藏 3
  • 点赞 0
  • 评论 0
摘要: mysql的语句执行顺序,为什么where条件中不能使用别名进行条件过滤

mysql语句

select xxx from xxx on xxx where  xxx  having xxxx

在网上查了半天,发现下面的说法是最能符合结果的解释:
1、from子句组装来自不同数据源的数据;  

2、where子句基于指定的条件对记录行进行筛选;  

3、group by子句将数据划分为多个分组->便于后续聚合函数计算;  

4、执行select语句,使用聚集函数进行计算,再执行distinct, distinct一般放在select最后,(聚合函数忽略null值), count
(distinct(id))这种先执行distinct再聚合;  

5、使用having子句筛选分组;  

6、计算所有的表达式;  

7、使用order by对结果集进行排序。

因为 where 是在select之前进行执行的 而 having是在select之后进行执行的 所以 having中可以使用别名进行条件过滤 

共有 人打赏支持
粉丝 2
博文 23
码字总数 5597
×
书中迷梦
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: