首页 > 解决方案 > 如何从两个 MySQL 数据库列中计算一个值以用于 WHERE 子句

问题描述

我有一个查询,开头像......

SELECT session_id, time, quantity, teacher, sum(time+(quantity*60*60*60)) AS end FROM my_table WHERE end > 1582214400 

我收到 PDO 异常...

column not found: 1054 Unknown column 'end' in 'where clause'

为什么 PDO/MySQL 会给我这个错误?计算end的正确语法是什么,以便我可以在 WHERE 子句中使用它?

标签: mysqlcalculated-columns

解决方案


您不能使用selectinwhere子句中的别名。改为使用having如下:

SELECT session_id, time, quantity, teacher, sum(time+(quantity*60*60*60)) AS end FROM my_table having end > 1582214400 

推荐阅读