MySQL如何处理传入case语句的null

时间:2013-04-07 23:54:58

标签: mysql case

我正在使用MySQL的案例陈述。

f.winner字段为NULL时,它返回“Loss”而不是f.method。所以似乎MySQL case语句不能像这样处理空白和空值。

(
    CASE f.winner
        WHEN :fighter_id THEN "Win"
        WHEN NULL OR "0" THEN f.method
        ELSE "Loss"
    END
) AS result,

有时f.winnerf.method都是空白的,我只希望结果在这些情况下返回为空白。

1 个答案:

答案 0 :(得分:2)

您可以使用IFNULL功能并从NULL子句中删除WHEN

(
    CASE IFNULL(f.winner, "0")
        WHEN :fighter_id THEN "Win"
        WHEN "0" THEN f.method
        ELSE "Loss"
    END
) AS result,