gpt4 book ai didi

MySQL:优化涉及计算的查询

转载 作者:行者123 更新时间:2023-11-29 05:40:51 24 4
gpt4 key购买 nike

如何优化对 WHEREORDER BY 使用相同计算的查询?

例如:

SELECT a, b
FROM my_table
WHERE SIN(a) + COS(b) + TAN(5.5) < 10
ORDER BY SIN(a) + COS(b) + TAN(5.5)
此示例中的

5.510 是用户提供的值,它们会在查询之间发生变化。这是一种简化——实际计算相对复杂,因此无法将结果存储在另一列中。

由于应用程序的限制,我无法将计算添加到 SELECT 语句中。如何防止 MySQL 每行执行两次相同的计算?

最后,我应该使用 WHERE 还是 HAVING 来根据计算结果进行过滤?

非常感谢。

最佳答案

我面前没有我的开发机器,这行得通吗?

SELECT a, b
FROM my_table
ORDER BY ( SIN(a) + COS(b) + TAN(5.5) )
HAVING ( SIN(a) + COS(b) + TAN(5.5) ) < 10

如果是,则 HAVING 语句不应重新计算方程。

关于MySQL:优化涉及计算的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914534/

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