3

私は次の表を持っています

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

image_id 列と image_status 列に値が入力されます。image_result の値はすべて NULL です。

次の条件に基づいて、image_result列に次の値を挿入したい(テーブル内のすべての行を更新したい)-

  • image_status = '0' または image_status = '3' の場合、image_result = 'Pass'
  • image_status = '1' または image_status = '4' の場合、image_result = '警告'
  • image_status = '2' の場合、image_result = '失敗'

上記を行うにはどうすればよいですか?

4

3 に答える 3

8
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 
于 2012-10-09T10:58:13.070 に答える
2
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'); 
于 2012-10-09T11:00:21.620 に答える
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
于 2012-10-09T10:57:52.420 に答える