mysql之在 WHERE 中重用 SELECT 的值
yyy_WW
阅读:71
2024-10-25 08:56:14
评论:0
是否可以在 WHERE
子句中重用 SELECT
的值?
实际上,如果可能的话,我会很好:在 SELECT
中重用来自 WHERE
的值。我只是想提高可读性和最终性能:我猜现代 SQL Server 不会计算两次该值。
SELECT `e`.*, (datediff(e.start, 'someValue')) AS `offset`
FROM `event` AS `e`
WHERE `offset` % someInterval = 0
代替
SELECT `e`.*, (datediff(e.start, 'someValue')) AS `offset`
FROM `event` AS `e`
WHERE (datediff(e.start, 'someValue')) % someInterval = 0
请您参考如下方法:
使用HAVING
代替WHERE
:
SELECT `e`.*, (datediff(e.start, 'someValue')) AS `offset`
FROM `event` AS `e`
HAVING `offset` % someInterval = 0
WHERE
用于决定将哪些行放入结果集中,因此如果您可以在选择结果的同时引用结果,那么您将无限倒退。
HAVING
用于在计算结果后对其进行过滤。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。