MySql根据其他字段值更新字段值
我正在尝试创建一个查询,该查询将执行以下操作: 这是我的桌子:MySql根据其他字段值更新字段值,mysql,sql-update,Mysql,Sql Update,我正在尝试创建一个查询,该查询将执行以下操作: 这是我的桌子: ID total paid own status ------------------------------------------------ 1 100.00 100.00 100.00 0 以下是查询: $total = 50; UPDATE cart table SET paid = $total, status = CASE WHEN $total >
ID total paid own status
------------------------------------------------
1 100.00 100.00 100.00 0
以下是查询:
$total = 50;
UPDATE cart table SET paid = $total, status = CASE WHEN $total >= own THEN 1 ELSE 2 END;
其思想是,如果字段“总计”的总量等于或大于字段“自身”中的总量,则更新字段“状态”为1,否则为2
我不确定我是否可以只使用一个查询来完成此操作,或者我需要更新购物车表、提取结果、执行计算,然后再次更新。请尝试以下操作:
UPDATE cart table SET paid = $total, status = If($total >= own, 1, 2)
Where ID = 1;
它被称为条件更新查询 您的查询将执行您提到的操作。除了您定义的
表
关键字之外,它不应该在那里,否则您的查询就可以了:
UPDATE cart
SET paid = $total,
status = CASE WHEN $total >= own THEN 1 ELSE 2 END
WHERE
--your condition
有点黑客行为和SQL版本相关,但是:
UPDATE cart SET paid=$total, status=-($total>=own)+2;
这不管用吗?似乎很好,我不确定这是否有任何区别,可能不需要
选择
,只要如果
就行了。我认为在程序中使用了案例。您知道OP正在使用$total
更新表吗?而不是字段总计
?否则,错误似乎是由于使用了表
关键字是的,谢谢突出显示,但它不会影响查询。