【问题标题】:How to check if column contains and Id and then update it in sql?如何检查列是否包含和 Id 然后在 sql 中更新它?
【发布时间】:2018-09-13 02:01:41
【问题描述】:

我有一张如下表

Zoneid     |  Values
------------------
  1    |  a
  1    |  b  
  1    |  c
  1    |  d
  1    |  e
  2    |  a
  2    |  a
  2    |  c
  2    |  c
  2    |  e
  3    |  a
  3    |  c
  3    |  b
  3    |  d

我想将所有 Zoneid =1 的值更新为“已完成”,将 ZoneId =3 的值更新为“失败”,是否有任何 if 语句可以尝试这样做?任何

if(ZoneId = "1") Update Zones set Values = "completed";

mysql 中的语法?

重要

遍历每个 ZoneId 是必须的

编辑

基本上我会通过java程序更新表格,

///Values is an arrayList which contains the following  Strings
Values = {
 completed1,
 completed2,
 completed3,
 completed4
};
//The idea is to loop in this array and update every ZoneId= 1 and ZoneId = 3

for (int i = 0; i < Values.size()) {
 //update table zones

 if (ZoneId = 1) Update Values.get(i);
}

输出应该是这样的

id     |  Values
------------------
  1    |  completed1
  1    |  completed2  
  1    |  completed3
  1    |  completed4

很抱歉给您带来不便:)

【问题讨论】:

    标签: java mysql if-statement phpmyadmin


    【解决方案1】:

    您可以使用 CASE:

    UPDATE Zones
    SET    Values = CASE WHEN ZoneId = 1 THEN 'COMPLETED'
                         WHEN ZoneId = 3 THEN 'FAILURE'
                    END
    WHERE  Values IN (1,3);
    

    UPDATE Zones
    SET    Values = CASE WHEN ZoneId = 1 THEN 'COMPLETED'
                         ELSE 'FAILURE'
                    END
    WHERE  Values IN (1,3);
    

    【讨论】:

    • 我已经编辑了这个问题,没有正确询问给您带来的不便,非常感谢您的回答,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多