SQL的执行顺序
实际上sql查询,不是从SELECT开始执行的。
看到大神发的帖子,总结了一下。
FROM JOIN --> WHERE --> GROUP BY --> HAVING ->SELECT(窗口函数在此发生)->ORDER BY -> LIMIT
理解顺序:

1.可以在GROUP BY 之后使用 WHERE 吗?
答:不行,先加where条件,然后再分组group by
CREATE TABLE(
text
int(10) NOT NULL,
id
varchar(255) NOT NULL,
name
number
int(255) NOT NULL,
PRIMARY KEY (
id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.可以对窗口函数返回的结果进行过滤么?
答:不行,窗口函数是select语句里,而select是在where和group by之后进行的。
3.可以基于group by 里的东西进行 order by吗?
答:可以,order by 基本上是在最后执行的,所以可以基于任何东西进行 order by;
插播面试题:
order by 默认是升序还是降序?
答:升序
4.limt 是在什么时候执行?
答:在最最最最最最最最最后!