mysql - 如何从两个 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 子句中使用它?
解决方案
您不能使用select
inwhere
子句中的别名。改为使用having
如下:
SELECT session_id, time, quantity, teacher, sum(time+(quantity*60*60*60)) AS end FROM my_table having end > 1582214400
推荐阅读
- ms-access - 为表格定义术语后,如何将切换回选项组按钮?
- pytorch - 使用 pytorch 将数据点分为两类
- java - 为什么是 RecyclerView 中的跳过布局?
- bash - 如何正确运行以下 bash 代码
- node.js - 如果后端未使用推荐代码,则删除用户的 Firebase 数据
- google-cloud-logging - Google Cloud Logging 包含/排除过滤器的文档在哪里?
- c# - 在 Linqpad 6 中添加 EF Core 5 上下文会引发无法加载文件或程序集“System.Runtime”错误
- python - 从文本文件python读取列
- flutter - 未处理的异常:DioError [DioErrorType.DEFAULT]:将对象转换为可编码对象失败:“DateTime”实例
- c++ - c++:以编程方式初始化 constexpr std-2DArray