我正在尝试创建一个将执行以下操作的查询:
这是我的表:
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。
我不确定我是否可以只使用一个查询来执行此操作,或者我需要更新购物车表,提取结果,执行计算而不是再次更新。
答案 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;