末言 发表于 2024-7-4 01:36:47

MySQL 中 SQL 查询语句的执行顺序

在 MySQL 中,SQL 查询的执行顺序通常按照以下顺序进行:

[*]FROM:从指定的表中选择数据。
[*]WHERE:对数据进行筛选,只选择满足条件的行。
[*]GROUP BY:按照指定的列对数据进行分组。
[*]SELECT:选择要返回的列或表达式。
[*]HAVING:对分组后的数据进行筛选,只选择满足条件的分组。
[*]UNION
[*]ORDER BY:对结果进行排序。
[*]LIMIT:限制返回的行数(也称offset)。
请记住,这是一般情况下的执行顺序,并不一定适用于所有情况。优化器可能会根据查询的具体条件和表的索引情况进行优化,改变执行顺序以提高性能。
 
根据上面介绍的 select 与 having 的顺序,下面①中的分组语句是正确的, 它等同于 ②。<br>① select enterprise_id, count(*) as total from enterprise_agreement group by enterprise_id having total > 10<br>② select enterprise_id, count(*) as total from enterprise_agreement group by enterprise_id having count(*) > 10<br><br><br>
来源:https://www.cnblogs.com/buguge/p/18281985
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: MySQL 中 SQL 查询语句的执行顺序