简体   繁体   English

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

[英]Two separate updates involving different columns in one SQL query

UPDATE users SET col1 = '' WHERE user_id IN (a, b)
UPDATE users SET col2 = '' WHERE user_id IN (c, d)

Is it possible to write a single update query that can provide the same result?是否可以编写可提供相同结果的单个更新查询?

You can use a case expression:您可以使用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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM