首页 文章

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

提问于
浏览
6

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

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

有没有什么方法退款 . 默认情况下,总是需要-ve值 .

4 回答

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

    如果您出于某种原因无法保证每次插入新行时都获得正数,请取绝对值并将其乘以-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`
    
  • 8

    只需将它乘以-1,就可以将其作为insert语句的一部分 .

    INSERT INTO refund (id,amount) 
    SELECT id,
           amount * -1 
     FROM `transaction`
    
  • 3
    INSERT INTO refund (id,amount) 
    SELECT id, (0 - amount) as amount FROM `transaction`
    

    因为 transaction 中的所有数据都是正数 .

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

相关问题