【发布时间】:2020-08-03 16:36:16
【问题描述】:
UPDATE users SET col1 = '' WHERE user_id IN (a, b)
UPDATE users SET col2 = '' WHERE user_id IN (c, d)
是否可以编写一个可以提供相同结果的更新查询?
【问题讨论】:
标签: mysql sql database relational-database
UPDATE users SET col1 = '' WHERE user_id IN (a, b)
UPDATE users SET col2 = '' WHERE user_id IN (c, d)
是否可以编写一个可以提供相同结果的更新查询?
【问题讨论】:
标签: mysql sql database relational-database
您可以使用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 tb_users SET unique_device_id_reg = (CASE WHEN user_id IN (2403613, 2403614) THEN '' ELSE unique_device_id_reg END), reg_device_token = (CASE WHEN user_id in (2403615, 2403616) THEN '' ELSE reg_device_token END) WHERE user_id in (2403613, 2403614, 2403615, 2403616)
UPDATE tb_users SET reg_device_token = reg_device_token WHERE user_id = 2403616