如何在 SQL 中编写条件 UPDATE 语句

问题描述 投票:0回答:1

我的表格有这些列

id_+owner_id+security_owner_id+_developer_id

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

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

类似的东西

row-1:1,2,2,2 和 user_id=2 已删除,则更新的行将为 1,null,null,null

row-2:1,2,3,7 和 user_id=2 已删除,则更新的行将为 1,null,3,7

mysql sql
1个回答
0
投票

您可以使用条件逻辑:

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);

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

© www.soinside.com 2019 - 2024. All rights reserved.