MySql更新字段值基于其他字段值

时间:2016-01-27 19:13:13

标签: 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 >= own THEN 1 ELSE 2 END;

这个想法是如果总的数量"总计"等于或大于现场的数量"拥有"更新字段" status"为1,另外为2。

我不确定我是否可以只使用一个查询来执行此操作,或者我需要更新购物车表,提取结果,执行计算而不是再次更新。

3 个答案:

答案 0 :(得分:0)

试试这个:

UPDATE cart table SET paid = $total, status = If($total >= own, 1, 2)
Where ID = 1;

答案 1 :(得分:0)

它称为条件更新查询。

您的查询将执行您提到的操作。除了您定义的table关键字,它不应该在那里,否则您的查询就可以了:

UPDATE cart
    SET paid = $total,
        status = CASE WHEN $total >= own THEN 1 ELSE 2 END
WHERE
    --your condition

答案 2 :(得分:0)

有点像黑客和SQL版本,但是:

UPDATE cart SET paid=$total, status=-($total>=own)+2;