2012-09-21 6 views
6

Znam języki, takie jak PHP ma strukturę kontroli przypadek przełącznik, który obsługuje wiele walidacji w pojedynczym sprawozdaniu takim wypadku,Jak napisać CASE MYSQL CASE z wieloma warunkami wyszukiwania?

Switch $x { 
    case 1,2,3: 
     $a = 0; 
     break; 
    case 5,6: 
     $a = 1; 
     break; 
} 

Podobnie można to zrobić w MySQL? Próbowałem poniżej, które tak naprawdę nie działa choć :(

CASE vc_shape 
    WHEN ('02' OR '51') THEN SET dc_square_1 = dc_square_1 + dc_row_total; 
    WHEN ('06' OR '30' OR 83) THEN SET dc_square_2 = dc_square_2 + dc_row_total; 
    ..... 
    ..... 
    ELSE 
     BEGIN 
     END; 
END CASE; 

Wszelkie pomysły jak można to osiągnąć

Odpowiedz

12

użyć innego formatu CASE sprawozdania:

CASE 
    WHEN vc_shape IN ('02', '51') THEN SET dc_square_1 = dc_square_1 + dc_row_total; 
    WHEN vc_shape IN ('06', '30', '83') THEN SET dc_square_2 = dc_square_2 + dc_row_total; 
    ..... 
    ..... 
    ELSE 
     BEGIN 
     END; 
END CASE;