MySQL:如果它们的值等于,则更新多个列 [英] MySQL: Update multiple columns if their value equals to

查看:58
本文介绍了MySQL:如果它们的值等于,则更新多个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果某些列的值等于整数,我想知道是否有一种短"方式(单个查询)来更新某些列.

I would like to know if there's a 'short' way (single query) to update certain columns, if their value equals to an integer.

假设我的桌子是这样的:

Let's say that my table looks like this:

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

并且我想将整数 3 的所有值(customerID 除外)设置为 0 - 这样查询将更新列 v0v1.

and I would like to set all the values of integer 3 (except customerID) to 0 - so the query will update column v0 and v1.

推荐答案

你可以用一堆 case 语句来做到这一点:

You can do this with a bunch of case statements:

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:如果它们的值等于,则更新多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆