gpt4 book ai didi

sql - MySQL中选择数据并通过临时列数据限制(WHERE)

转载 作者:行者123 更新时间:2023-11-30 23:43:01 26 4
gpt4 key购买 nike

我正在尝试按状态对订单条目进行排序,但是在我的数据库中没有状态列,我正在尝试使用数据库中其他列的当前值即时生成它。

我在查询中使用 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/

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