更新mysql表,取一列的值,将其添加到另一列,更改第一列的值

时间:2014-07-31 15:19:31

标签: mysql sql mysqli

我正在尝试使用以下代码更新表:

"UPDATE balance_down SET earned_back=earned_back + charge_amount, charge_amount='0'

基本上我试图获取charge_amount的值,将其添加到赚回来,并将charge_amount设置为零。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:3)

单表UPDATE分配通常从左到右进行评估。 这就是您的查询按预期工作的原因。 但是如果你替换操作数,你会得到错误的结果:

SET charge_amount='0', earned_back=earned_back + charge_amount

因此它按指定的顺序(从左到右)进行评估。

无论如何,您总是可以将查询拆分为两个独立的查询(设置为earn_back = earn_back + charge_amount,然后设置charge_amount ='0'),以便不依赖于评估顺序。

答案 1 :(得分:1)

我认为有两个查询更清楚。

UPDATE balance_down SET earned_back=earned_back + charge_amount;
UPDATE balance_down SET charge_amount='0';

这表明您正在按收费金额增加earn_back。然后充电量变为零。很明显,charge_amount的数量正在全部适用。