如果某些列的值等于整数,我想知道是否有一种“短”方式(单个查询)来更新它们。
假设我的桌子是这样的:

+------------+----+----+----+----+
| customerID | v0 | v1 | v2 | v3 |
+------------+----+----+----+----+
|          1 |  3 |  3 |  2 |  1 |
+------------+----+----+----+----+

我想将整数3的所有值(除了customerID)设置为0,这样查询将更新列v0v1

最佳答案

你可以用一堆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)

关于mysql - MySQL:更新多个列,如果它们的值等于,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34697997/

10-12 02:13