如果它们不等于0,我想从表中的SEVERAL元素中减去1。
一个元素的代码
UPDATE `database` SET a1=a1-1 WHERE a1!='0' AND username='bob';
我想对同一个命令做同样的事情,为几个元素a2,a3 ...(用户名对所有元素保持不变)
谢谢
答案 0 :(得分:1)
你可能正在寻找你的集合表达式中的条件。这可以通过关键字CASE
:
UPDATE 'database'
SET
a1 = CASE WHEN a1 != 0 THEN (a1 - 1) END,
a2 = CASE WHEN a2 != 0 THEN (a2 - 1) END
WHERE
username='bob';
请务必了解 sql update 语法的原理,该语法基本上由单个UPDATE ... SET ... [WHERE]
模式组成。
提示:我非常确定你的a1,a2,a3,..字段的类型是整数,所以 - 与代码示例不同 - 要检查的值不得放入报价!