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

标签 mysql

我有以下 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/

相关文章:

php - 如何在每天凌晨 12 点运行 php 脚本

MySQL 使用 INSERT INTO/SELECT 拆分以逗号分隔的字符串值

php - 需要两个Select查询帮助

mysql - 从 cake 2.6 切换到 2.9 时编码错误

php - SQL Radius 在一个与另一个连接的表中搜索

mysql - 为什么这些查询会返回不同的结果?

mysql - ORDER BY 百分比(100% 除外)

php - php 按时间顺序按日和月对数组进行排序

php - MYSQLI prepared statement proceeds 没有输出

Javascript ParseFloat 自动填充没有小数点