这是检查连续多个列值的合法/好方法(为了向用户发送适当的反馈)吗?
select
(date_expires < now()) as expired,
(date_deleted is not null) as active
from sometable where row='foo';
对我来说这似乎非常方便(这样我可以进行一次查询并有条件地提醒用户他们试图访问的行确实出错了),但实际上我还没有看到它我担心有一个很大的缺点,我没有看到。谢谢!
答案 0 :(得分:1)
您的方法有效,它只是回馈单独的列。如果你想要一个列来保存结果,那么它的一些案例陈述很有趣。
select
case when date_expires < now() then 'Inactive'
else 'active'
end as status
from sometable where row='foo';
这会使您处于非活动/活动状态,因为它是两个值。我刚刚和其他人一起活动,你可以把这个条件放到一系列的时候再这个价值&#39;如果你想要的话。