我知道MySQL的执行顺序不是固定的。但是,我听说它通常是这样的:
FROM
,包括JOIN
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
LIMIT
和OFFSET
但是,如果我运行例如COUNT()
之类的函数(例如下面的代码),什么时候可以执行? MySQL如何确定将使用该函数计算的主题(例如 COUNT()
函数要计算的内容)?我对AVG()
,SUM()
,MAX()
,等等功能的执行顺序和目标指定感到困惑。在MySQL中。
SELECT productvendor, count(*)
FROM products
GROUP BY productvendor
HAVING count(*) >= 9;
答案 0 :(得分:3)
您的顺序不正确
选择在GROUP BY
FROM, including JOINs
WHERE
SELECT the row obtained by from and where in a temporary area for others
operation (and build the column alias)
DISTINCT
GROUP BY
HAVING
ORDER BY
LIMIT and OFFSET
return the final result
使用选择列对临时结果进行计数和聚集功能。此操作产生的结果通过
进行过滤