MySQL 中函数的执行顺序

Execution order of functions in MySQL

我知道MySQL的执行顺序不固定。但是,我听说它通常是这样的:

  1. FROM,包括JOINs
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. DISTINCT
  7. ORDER BY
  8. LIMITOFFSET

但是,如果我 运行 的功能类似于 COUNT()(例如下面的代码),它什么时候执行?以及 MySQL 如何决定将使用函数计算的主题( 例如 COUNT() 函数要计算什么)?我对执行顺序目标指定感到困惑 AVG(), SUM(), MAX()在MySQL.

SELECT productvendor, count(*)
FROM products
GROUP BY productvendor
HAVING count(*) >= 9;

你的顺序不正确
select 在 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 

计数和聚合函数是在 select 列的临时结果上完成的。此操作产生的结果通过

过滤