带或条件的Mysql案例

时间:2012-07-30 04:58:34

标签: php mysql sql

如何在mysql查询中编写一个案例,该案例检查特定列的null或0


CREATE TABLE tblConfirmationStatus (Confirm_Status TINY INT)

INSERT INTO tblConfirmationStatus 
Confirm_Status
VALUES
(1),
(0),
(1),
({null}),
(0),
(1),
({null})

必需的输出

ConfirmStatus

   Confirmed
   Not Confirmed
   Confirmed
   Not Confirmed
   Not Confirmed
   Confirmed
   Not Confirmed

0或Null - 未确认,1-Confirmed

SELECT CASE Confirm_Status 
            WHEN NULL OR 0 THEN 'Not Confirmed' 
             ELSE  'Confirmed' END AS ConfirmStatus
  FROM tblConfirmationStatus;

3 个答案:

答案 0 :(得分:24)

CASE语句有两个选项 - 您发布的语句或:

SELECT CASE 
        WHEN Confirm_Status IS NULL OR Confirm_Status = 0 THEN 'Not Confirmed' 
        ELSE  'Confirmed' 
       END AS ConfirmStatus

但你可以使用:

SELECT CASE 
        WHEN Confirm_Status > 0 THEN 'Confirmed' 
        ELSE  'Not Confirmed' 
       END AS ConfirmStatus

NULL缺少一个值,因此检查大于零的值应归入与零相同的类别。

答案 1 :(得分:4)

SELECT IF((Confirm_Status IS NULL OR Confirm_Status = 0), 
           'Not Confirmed', 'Confirmed') AS ConfirmStatus
FROM tblConfirmationStatus;

答案 2 :(得分:1)

您是否看过使用IFNULL运算符。

  

IFNULL(表达式1,表达式2)

     

如果expr1不为NULL,则IFNULL()返回expr1;否则它会返回   表达式2。 IFNULL()返回一个数字或字符串值,具体取决于   使用它的上下文。