首页 > 解决方案 > 如何在 WHERE 子句中使用“IN”和“CASE 语句”?

问题描述

下面是我的 MYSQL 查询

select * from `ordermaster` where OrderStatus in (case when 1= 0 then OrderStatus else ("Completed","Cancelled") end)

如您所见,第一个条件是全部,下一个条件是特定的。

如果满足条件 1,那么我想返回整个数据 wrt orderstatus 但如果满足条件,那么我只想要 OrderStatus 为“已完成”或“已取消”的记录,但这会产生问题。我可以直接使用“IN”,但不能使用“CASE”语句。

谢谢,拉胡尔

标签: mysqlwildcardwhere-clausecase-statement

解决方案


SELECT ordermaster
    CASE 
        WHEN OrderStatus = 1 THEN 'Completed'
        WHEN OrderStatus = 0 THEN 'Cancelled'
    END AS STATUS 
FROM ordermaster;

推荐阅读