在一个sql查询中涉及不同列的两个独立更新

46qrfjad  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(304)
UPDATE users SET col1 = '' WHERE user_id IN (a, b)
UPDATE users SET col2 = '' WHERE user_id IN (c, d)

是否可以编写一个可以提供相同结果的更新查询?

ezykj2lf

ezykj2lf1#

你可以使用 case 表达式:

UPDATE users
    SET col1 = (CASE WHEN user_id IN (a, b) THEN '' ELSE col1 END),
        col2 = (CASE WHEN user_id in (c, d) THEN '' ELSE col2 END)
    WHERE user_id in (a, b, c, d);

相关问题