如何在WHERE子句中的“ CASE语句”中使用“ IN”?

时间:2018-12-08 17:36:43

标签: mysql wildcard where-clause case-statement

下面是我的MYSQL查询

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

您会看到第一个条件是ALL,下一个条件是Specific。

如果满足条件1,那么我想返回带有订单状态的整个数据,但是如果满足条件,那么我只想要其OrderStatus为“已完成”或“已取消”的记录,但这是有问题的。我可以直接使用“ IN”,但不能与“ CASE”语句一起使用。

谢谢, 拉胡尔

1 个答案:

答案 0 :(得分:0)

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