我有一个表格如下
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
抱歉给您带来不便:)
最佳答案
您可以使用案例:
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);
关于java - 如何检查列是否包含和Id,然后在sql中更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635234/