2012-10-09 2 views
0

j'ai le tableau suivantMYSQL - valeurs de mise à jour de la nouvelle colonne sur la base de la condition

+--------------+------------+------+-----+---------+-------+ 
| Field  | Type  | Null | Key | Default | Extra | 
+--------------+------------+------+-----+---------+-------+ 
| image_id  | int(11) | YES |  | NULL |  | 
| image_status | bit(3)  | YES |  | NULL |  | 
| image_result | varchar(4) | YES |  | NULL |  | 
+--------------+------------+------+-----+---------+-------+ 

colonnes image_id et image_status sont remplis avec des valeurs. Les valeurs dans image_result sont toutes NULL.

Je souhaite insérer les valeurs suivantes dans la colonne de image_result sur la base des conditions suivantes (I souhaite mettre à jour toutes les lignes de la table) -

  • si image_status = '0' ou image_status = « 3 'alors image_result = 'Pass'
  • si image_status = '1' ou image_status = '4' puis image_result = 'avertir'
  • si image_status = '2' image_result puis = 'Fail'

Comment est-ce que je fais ce qui est indiqué ci-dessus?

Répondre

3
UPDATE table 
SET image_result = CASE 
    WHEN image_status = 0 OR image_status = 3 THEN 'Pass' 
    WHEN image_status = 1 OR image_status = 4 THEN 'Warm' 
    ELSE 'Fail' 
END 
0
update <table> set image_result = 
Case when image_status = '0' OR image_status = '3' then 'Pass' 
    when image_status = '1' OR image_status = '4' then 'Warn' 
    when image_status = '2'      then 'Fail' 
End 
1
UPDATE TableName 
SET image_result = CASE 
        WHEN image_status = '0' OR image_status = '3' THEN 'PASS' 
        WHEN image_status = '1' OR image_status = '4' THEN 'Warn' 
        WHEN image_status = '2' THEN 'Fail' 
        END 
WHERE image_status IN('0', '1', '2', '3', '4'); 
Questions connexes