2013-04-07 52 views
0

我在MySQL中使用case語句。MySQL如何處理空值傳入case case語句

f.winner字段爲NULL時,它返回「Loss」而不是f.method。因此,似乎MySQL案例聲明不能處理這樣的空白和空值。

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

有時兩個f.winnerf.method是空白的,我只是想將結果在這些情況下返回爲空白。

回答

2

你可以使用IFNULL功能,並刪除了NULLWHEN條款:

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

這個工作。我不得不將它改爲'WHEN'0'或''然後f.method',儘管因爲它對所有空白都返回了Loss。 – zen 2013-04-08 00:15:45