我正在使用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.winner
和f.method
都是空白的,我只希望结果在这些情况下返回为空白。
答案 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,