fUPDATE git_version SET update_time = now_timestatus = CASE WHEN id = version_id THEN 1 ELSE 0 END WHERE status 2;目前我想将固定id的状态变为1 如果有status=1的则变为0 status=0的不做任何操作
您的SQL语句已经实现了将固定id的状态变为1,如果有status=1的则变为0,status=0的不做任何操作的需求。
UPDATE git_version
SET update_time = '{now_time}',
status = CASE
WHEN id = {version_id} THEN 1
WHEN status = 1 THEN 0
ELSE status
END
WHERE status <> 2;
在这个SQL语句中,使用了CASE语句来判断条件,根据不同情况进行更新操作。首先将update_time更新为指定的now_time值,然后根据id和status的值来进行状态更新。
- 如果id等于指定的version_id,则将status更新为1;
- 如果status等于1,则将status更新为0;
- 如果status既不等于1也不等于2,则保持原有的status值不变。
最后通过WHERE条件排除status等于2的记录,确保只更新status不等于2的记录
原文地址: https://www.cveoy.top/t/topic/ihfs 著作权归作者所有。请勿转载和采集!