在一个 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)
是否可以编写可提供相同结果的单个更新查询?
您可以使用 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);
UPDATE users SET col1 = '' WHERE user_id IN (a, b)
UPDATE users SET col2 = '' WHERE user_id IN (c, d)
是否可以编写可提供相同结果的单个更新查询?
您可以使用 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);