gpt4 book ai didi

mysql - MySQL 查询中的 HAVING 和 WHERE 有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 07:04:45 24 4
gpt4 key购买 nike

我有一个基于某些表的连接的 View (viewX):

当我使用WHERE时,查询延迟,处理器使用率达到50%,最后我需要关闭mysqld.exe服务并重新启动来尝试解决又出问题了。

当我使用 HAVING 时,查询可以完美快速地执行,我得到了结果,一切就绪。

查询类似这样:

SELECT * FROM viewX WHERE column_of_view = 'foo'

SELECT * FROM viewX HAVING column_of_view = 'foo'

发生了什么事?

我找到的解决方案是做这样的事情:

SELECT * FROM (SELECT * FROM viewX) as T WHERE column_of_view = 'foo'

SELECT * FROM (SELECT * FROM viewX) as T HAVING column_of_view = 'foo'

两个查询都可以正常工作,但是,我认为这很糟糕! (SELECT * FROM (...viewX)????)

最佳答案

WHERE 用于根据条件过滤查询结果。

HAVING 用于对聚合函数的结果应用过滤器。在没有聚合函数的情况下,它的功能与 WHERE 相同。

http://blog.sqlauthority.com/2007/07/04/sql-server-definition-comparison-and-difference-between-having-and-where-clause/

关于mysql - MySQL 查询中的 HAVING 和 WHERE 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com