Mysql Sql条件更新

Mysql Sql条件更新,mysql,sql,Mysql,Sql,我的表有这些列 id+所有者id+安全所有者id+开发者id 这些ID是用户ID,因此一个用户可以拥有所有角色 如果用户被删除,我想将这些列设置为null 差不多 行1:1,2,2和用户id=2被删除,然后更新的行将是1,null,null,null 第2行:删除1,2,3,7和user_id=2,然后更新的行将是1,null,3,7。您可以使用条件逻辑: update mytable set owner_id = nullif(owner_id, 2), securit

我的表有这些列

id+所有者id+安全所有者id+开发者id

这些ID是用户ID,因此一个用户可以拥有所有角色

如果用户被删除,我想将这些列设置为null

差不多

行1:1,2,2和用户id=2被删除,然后更新的行将是1,null,null,null


第2行:删除1,2,3,7和user_id=2,然后更新的行将是1,null,3,7。您可以使用条件逻辑:

update mytable
    set owner_id = nullif(owner_id, 2),
        security_owner_id = nullif(security_owner_id, 2),
        developer_id = nullif(developer_id, 2)
    where 2 in (owner_id, security_owner_id, developer_id);

您可以将此逻辑放在触发器、存储过程或应用程序中。

请参阅删除集NULL上的
选项