0

我在 MySQL 中使用 case 语句。

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都是空白的,我只是希望结果在这些情况下返回为空白。

4

1 回答 1

2

您可以使用IFNULL函数并NULL从您的WHEN子句中删除:

(
    CASE IFNULL(f.winner, "0")
        WHEN :fighter_id THEN "Win"
        WHEN "0" THEN f.method
        ELSE "Loss"
    END
) AS result,
于 2013-04-08T00:08:38.400 回答