MYSQL - 根据条件更新新列的值

cor*_*one 3 mysql database sql-update

我有下表

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

image_id 和 image_status 列填充有值。image_result 中的值都是 NULL。

我想根据以下条件将以下值插入到 image_result 列中(我想更新表中的所有行)-

  • 如果 image_status = '0' OR image_status = '3' 然后 image_result = 'Pass'
  • 如果 image_status = '1' OR image_status = '4' 然后 image_result = 'Warn'
  • 如果 image_status = '2' 那么 image_result = 'Fail'

我如何做到以上几点?

Tah*_*ksu 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 
Run Code Online (Sandbox Code Playgroud)