语法执行顺序所有SQL语法遵循以下语法顺序1.group by之后不能加where2.having或group by都可单独使用where和having的不同:3.having和group by都可使用别名为什么MySQL group by和having中可以使用别名?
注:本文以下内容基于MySQL 5.7 I nnoDB数据库引擎。
score_table中的数据:
:MySQL执行顺序
所有SQL语法遵循以下语法顺序(MySQL引擎校对你的SQL语法是否正确):
1.select
2.from
3.where
4.group by
5.having
6.order by
7.limit
单独使用having的效果和where类似,但是和where有细微区别
where和having的不同:1.having可以使用别名,而where不可以使用别名
2.where可以使用select中未出现的列进行条件筛选,而having不行
面试题:
为什么MySQL group by和having中可以使用别名?答:这是因为MySQL5.7.5之后做了一个特殊的处理,允许在group by 和having中使用别名,也就是在MySQL5.7.5之后,按照select的执行顺序来说的话,group by 和having中是不能使用别名的



