在mysql中将正值更新为负值

Vai*_*shu 8 mysql

我有付款表字段

在此输入图像描述

更新原因和金额以及总计字段更改为负数

UPDATE payment 
SET reason = 'refund' 
WHERE uid =5 AND date = '2012-05-01' AND accid =2 
Run Code Online (Sandbox Code Playgroud)

更新单个查询是否可能?

Fah*_*kar 16

如果我理解正确,您还需要将amount列设置为正值以及上述语句.

你可以使用这样的东西

UPDATE payment 
SET reason = 'refund', amount = amount * -1, total = total * -1
WHERE uid =5 AND date = '2012-05-01' AND accid =2
Run Code Online (Sandbox Code Playgroud)

  • 如果我们确实金额=金额*-1那么正值将变为负值 (3认同)

And*_*son 5

使用ABS(amount),如果你想始终获得正整数。

SELECT ABS(5);
Run Code Online (Sandbox Code Playgroud)

将输出5

SELECT ABS(-5);  
Run Code Online (Sandbox Code Playgroud)

也会输出5