我try 使用MySQL IF() function
根据指定的条件执行代码块.
如果条件为TRUE
,则返回"KO"
;如果条件为FALSE
,则返回"OK"
.
以下说明了IF() function
的语法:
SELECT
id,
IF(DATEDIFF( Date_PEC, Date_Start ) > 30, "KO", "OK") DateDiff_1,
IF(DATEDIFF( Date_PEC, Data_Analysis ) > 45, "KO", "OK") DateDiff_2,
IF(DATEDIFF( Data_Analysis, Date_communication ) > 30, "KO", "OK") DateDiff_3,
IF(DATEDIFF( Date_communication, Date_of_issue ) > 30, "KO", "OK") DateDiff_4,
IF(DATEDIFF( Data_Analysis, Date_Archiving ) > 30, "KO", "OK") DateDiff_5,
IF(DATEDIFF( Date_of_issue, Date_Payment ) > 30, "KO", "OK") DateDiff_6
FROM `dotable`
WHERE
id = 161016;
+--------+------------+------------+------------+------------+------------+------------+
| id | DateDiff_1 | DateDiff_2 | DateDiff_3 | DateDiff_4 | DateDiff_5 | DateDiff_6 |
+--------+------------+------------+------------+------------+------------+------------+
| 161016 | OK | OK | OK | OK | OK | OK |
+--------+------------+------------+------------+------------+------------+------------+
1 row in set (0.16 sec)
我需要:
- 如果所有条件都返回OK,我必须用OK值更新id号161016表中的ALS列.
- 如果至少有一个返回值为KO,我必须更新id号为161016的表中包含KO值的ALS列.
mysql数据库的版本是8.0.12.
有什么建议吗?