如何在 MySQL 查询中多次有效地使用函数调用的结果,而不需要多次调用该函数?
我有一个 SQL 查询,例如:
SELECT blah
FROM table
WHERE field1 % functCall(otherField1, otherField2) = 0
OR field2 % functCall(otherField1, otherField2) = 0
OR field3 % functCall(otherField1, otherField2) = 0
有没有一种方法可以让我只能调用 functCall 一次,并在其他两次比较中重用它的结果?
谢谢!
I have an SQL query like:
SELECT blah
FROM table
WHERE field1 % functCall(otherField1, otherField2) = 0
OR field2 % functCall(otherField1, otherField2) = 0
OR field3 % functCall(otherField1, otherField2) = 0
Is there a way that I can only call functCall once, reusing it's result in the other two comparisons?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MySQL 会自动优化您的查询,以便该函数仅被调用一次,结果将被重用。
如果您想避免重复的代码,您可以在派生表中评估该函数,然后对其进行查询。
MySQL will automatically optimize your query so that the function is only called once and the result will be reused.
If you want to avoid the repeated code you can evaluate the function in a derived table and then query that.
首先将函数的结果存储在变量中,然后在查询中使用它。
Store the result of the function in a variable first the use it in your query.
在 from 子句中使用子查询,然后检查外部查询中的条件:
Use a sub-query in the from clause, then check the condition in the outer query: