您的位置:首页 > 数据库 > MySQL

mysql的语句执行顺序

2016-07-07 09:00 417 查看
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中可以使用别名进行条件过滤
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息