2013-04-07 3 views
0

MySQL과 함께 case 문을 사용하고 있습니다.MySQL 케이스 문에 null을 처리하는 방법

f.winner 필드가 NULL이면 f.method 대신 "손실"을 반환합니다. 그래서 MySQL case 문이 공백과 null을 처리하지 못하는 것처럼 보입니다.

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

때때로 모두 f.winnerf.method는 비어 있습니다, 난 그냥 결과가 이러한 상황에서 빈 반환합니다.

답변

2

당신은 당신의 WHEN 절에서 NULLIFNULL 기능을 사용하여 제거 할 수 있습니다 :이 일을

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

. 모든 빈칸에 대해 손실을 반환했기 때문에 'WHEN "0"OR ""THEN f.method "로 변경해야했습니다. – zen

관련 문제