作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试按状态对订单条目进行排序,但是在我的数据库中没有状态列,我正在尝试使用数据库中其他列的当前值即时生成它。
我在查询中使用 CASE 语句创建了一个“临时”列。我现在要做的是仅获取与 CASE 列的值匹配的表行。
这是我到目前为止所做的一个例子:
CASE WHEN date_due = 0 AND date_sent = 0 THEN "opened" WHEN date_sent > 0 AND (CURRENT_DATE - date_due) <= 0 THEN "sent" END AS status
我的问题是,当我尝试过滤它时,status
现在显然是一个未知列:
... WHERE status = "sent" ...
对我来说最好的解决方案是什么?是否可以定义一个包含状态的临时变量?
最佳答案
在 MySql 中,这有效
select
...
CASE
WHEN date_due = 0 AND date_sent = 0 THEN "opened"
WHEN date_sent > 0 AND (CURRENT_DATE - date_due) <= 0 THEN "sent"
END AS status
...
from table
where
... (other conditions) ...
**HAVING status = "sent"**
如果您不需要包含其他条件,请删除 WHERE
,只留下 SELECT ... FROM ... HAVING ...
关于sql - MySQL中选择数据并通过临时列数据限制(WHERE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1221256/
我是一名优秀的程序员,十分优秀!