Mysql:如何在插入时将正值转换为负值

时间:2015-08-12 12:52:54

标签: mysql sql

我有一个表事务,列(id,amount)都是正整数,我有另一个表退款,列号相同,但这里的金额预计为负数。 现在我想使用Insert into命令从事务中选择并插入退款。如何在插入时使金额为负数。以下是我正在尝试的查询。

INSERT INTO refund (id,amount) 
SELECT id, amount FROM `transaction`

退款是否有任何方法。默认情况下,总是需要-ve值。

4 个答案:

答案 0 :(得分:10)

docker run --name containername \
    -p 80:80
    imagename /cmd

因为INSERT INTO refund (id,amount) SELECT id, (0 - amount) as amount FROM `transaction` 中的所有数据都是正数。

transaction

答案 1 :(得分:8)

如果您出于某种原因无法保证每次插入新行时获得正数,请取绝对值并乘以-1

INSERT INTO refund (id,amount) 
SELECT id, -1 * ABS(amount) FROM `transaction`

否则,不需要ABS()部分

INSERT INTO refund (id,amount) 
SELECT id, -1 * amount FROM `transaction`

答案 2 :(得分:3)

将它乘以-1,将其作为插入语句的一部分。

INSERT INTO refund (id,amount) 
SELECT id,
       amount * -1 
 FROM `transaction`

答案 3 :(得分:3)

INSERT INTO refund (id,amount) 
SELECT id, (amount * -1) AS amount FROM `transaction`