2012-09-21 9 views
6

Ich weiß, Sprachen wie PHP Schaltergehäuse Kontrollstruktur hat, die wie,Wie schreibe ich eine MYSQL CASE WHEN-Anweisung mit mehreren Suchbedingungen?

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

Ebenso kann in MYSQL werden dies getan mehrere Validierungen in einem einzigen Fall Anweisung unterstützt? Ich habe versucht, unten, das ist wirklich nicht funktioniert, obwohl :(

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; 

Alle Ideen, wie kann ich das erreichen

Antwort

12

Verwenden Sie das andere Format für CASE Aussagen:

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;