gpt4 book ai didi

mysql - 在 Where 子句中使用多列结果

转载 作者:行者123 更新时间:2023-11-29 05:47:17 25 4
gpt4 key购买 nike

我有以下 MySQL 查询,其中我将三列乘以“总体获胜”。然后我想使用 overall_win 的条件 >400。但是,查询仅在没有此条件的情况下有效。我能做什么?

SELECT 
*,(`obj_purchasePrice`*`win_per_100000_EUR_invest`*`rent_factor`/100000) AS `overall_win`
FROM local_data.house_data
WHERE geo_plz IN (10115,10117) AND `date`>='2019-10-29' AND `overall_win`>='400'

最佳答案

不允许在 where 条件中使用列别名,因为 where 子句在 select 子句之前求值
所以你应该重复代码

SELECT   *
,(`obj_purchasePrice`*`win_per_100000_EUR_invest`*`rent_factor`/100000) AS `overall_win`
FROM local_data.house_data
WHERE geo_plz IN (10115,10117)
AND `date`>='2019-10-29'
AND (`obj_purchasePrice`*`win_per_100000_EUR_invest`*`rent_factor`/100000)>='400'

或者您可以使用 HAVING 子句(此子句作用于选择结果,并在结果呈现之前应用到选择的末尾

SELECT   *
,(`obj_purchasePrice`*`win_per_100000_EUR_invest`*`rent_factor`/100000) AS `overall_win`
FROM local_data.house_data
WHERE geo_plz IN (10115,10117) AND `date`>='2019-10-29'
HAVING `overall_win` >='400'

关于mysql - 在 Where 子句中使用多列结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58671820/

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