我有这样的查询:
UPDATE image
SET angle = CASE
WHEN id = 1000
THEN 90
ELSE
angle
END WHERE
id IN(1000)
正如您可能已经猜到的,这个SQL是动态构建的,因此使用单个语句我可以更新多个记录。我想要的是,在这种情况下,不是直接更新值为90,我希望它是增量的。所以我想我能做到:
UPDATE image
SET angle = CASE
WHEN id = 1000
THEN angle + 90 //<-- instead of 90, I use (angle + 90)
ELSE
angle
END WHERE
id IN(1000)
我想弄清楚的唯一另一件事是if(angle + 90)&gt; = 360,那么我希望角度字段为0.我不确定如何编辑SQL语法来使这个发生。任何指针都非常感谢!
答案 0 :(得分:2)
您可以使用模数运算符(%
)。每当表达式angle + 90
超过360度时,它将回绕到零。
UPDATE image
SET angle = CASE
WHEN id = 1000
THEN (angle + 90) % 360
ELSE angle
END
WHERE id IN(1000)
答案 1 :(得分:0)
您确实可以执行嵌套的UPDATE image
SET angle = CASE
WHEN id = 1000
THEN
CASE WHEN angle >= 270
THEN 0
ELSE angle + 90 //<-- instead of 90, I use (angle + 90)
END
ELSE
angle
END WHERE
id IN(1000)
语句
pickerView.hidden = true;