我正在尝试使用此命令通过 IF 语句更新 saving.balance
:
UPDATE TABLE saving s, time t
SET s.balance = IF(t.currency_TYPE = ‘RMB’, s.balance + t.balance * t.interest)
WHERE t.ID = 'input'
AND s.User = t.User;
但是,MySQL 给了我ERROR 1064
,这是什么错误以及如何纠正它?
最佳答案
您忘记了 IF 函数中的第三个参数和其他语法内容:-)
为什么你让你的脚本不在哪儿?像这样:
UPDATE saving s
INNER JOIN time t
ON t.ID = 'input'
AND t.User = s.User
SET s.balance = s.balance + t.balance * t.interest
WHERE t.currency_TYPE = 'RMB';
您将只更新 currency_type 为 rmb 的记录!
或
UPDATE saving s
INNER JOIN time t
ON t.ID = 'input'
AND t.User = s.User
SET s.balance = (t.currency_TYPE = 'RMB', s.balance + t.balance * t.interest, 0);
关于mysql - 使用if语句更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839106/