mysql - 使用if语句更新表

标签 mysql

我正在尝试使用此命令通过 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/

相关文章:

mysql - 从本地 infile 加载到 mysql 中的表时如何禁用双引号插入?

MySQL查询从第二个表中删除重复项

php - UPDATE 和增量列值 POD

php - 如何在 PHP - MySQL 中连接两个表,它们与第二个表中的 ID 匹配,并且仍然在表 1 中显示特定记录?

php - 通过 odbc 更新 FileMaker 表

mysql - 请帮助我理解 SQL 中的这个查询

mysql - 加入 mysql 输出

mysql - 从 MySQL 到 MS SQL Server 的 SQL 查询错误

mysql - linux 中用于处理数据库(oracle、mysql)的最佳 Gui 编辑器?

php - MySql 查询在 php 中不起作用