MySQL 中函数的执行顺序
Execution order of functions in MySQL
我知道MySQL的执行顺序不固定。但是,我听说它通常是这样的:
FROM
,包括JOIN
s
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;
你的顺序不正确
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 列的临时结果上完成的。此操作产生的结果通过
过滤
我知道MySQL的执行顺序不固定。但是,我听说它通常是这样的:
FROM
,包括JOIN
sWHERE
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;
你的顺序不正确
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 列的临时结果上完成的。此操作产生的结果通过
过滤