我想知道是否存在更新某些列的“短路”(单一查询),如果它们的值等于整数。
假设我的表看起来像这样:
+------------+----+----+----+----+
| customerID | v0 | v1 | v2 | v3 |
+------------+----+----+----+----+
| 1 | 3 | 3 | 2 | 1 |
+------------+----+----+----+----+
我想将整数3的所有值(customerID
除外)设置为0 - 因此查询将更新列v0
和v1
。
答案 0 :(得分:1)
您可以使用一堆case
语句执行此操作:
UPDATE my_table
SET v0 = CASE v0 WHEN 3 THEN 0 ELSE v0 END,
v1 = CASE v1 WHEN 3 THEN 0 ELSE v1 END,
v2 = CASE v2 WHEN 3 THEN 0 ELSE v2 END,
v3 = CASE v3 WHEN 3 THEN 0 ELSE v3 END
WHERE 3 IN (v0, v1, v2, v3)
答案 1 :(得分:1)