我已经提交了默认为空的strp_aa。提交的strp_-a a只应在其为null且MAX strp_-aa+1时更新,如果其不为null且已具有数字,则应保持不变。
代码的简短版本是
UPDATE STRANKEP
SET strp_aa = IF(strp_aa=null, strp_aa+1, strp_aa)
WHERE strp_ID=36;
也很累
UPDATE STRANKEP
SET strp_aa = IF(strp_aa=null, (SELECT MAX(strp_aa)) +1, (SELECT (strp_aa) WHERE strp_ID=36)
WHERE strp_ID=36;
我试了很多像这里提到的
Update MySQL with if condition
:
UPDATE STRANKEP
SET strp_aa = CASE WHEN strp_aa = NULL THEN MAX(strp_aa) + 1 ELSE strp_aa END
WHERE strp_ID = 36;
mysql query to update field to max(field) + 1
尝试了各种各样的组合与提供的答案,它不会为我工作。其中一个版本是:
UPDATE STRANKEP
SET strp_aa = IF((SELECT strp_aa )!=null,((SELECT selected_value2 FROM (SELECT (strp_aa) AS selected_value2 FROM STRANKEP WHERE strp_ID=36) AS sub_selected_value2)), ((SELECT selected_value FROM (SELECT MAX(strp_aa) AS selected_value FROM STRANKEP) AS sub_selected_value) + 1) )
WHERE strp_ID=36;
这只是不断添加一个,即使有一个数字设置在strp_a。。。
我不知道还能尝试什么。