如何使用旧值+新值更新表?

时间:2017-09-17 14:10:55

标签: mysql sql mysqli pdo

我有这个SQL字符串,如果它存在则更新一行,如果不存在则创建一行,如果更新ctc_portfolio_coins_amount

我该怎么办?

如果我的值为100或-100,我如何将其减去或在更新时将其添加到当前值?

INSERT INTO ctc_portfolio_coins
    (ctc_portfolio_coins_portfolio_fk, ctc_portfolio_coins_coin_fk, ctc_portfolio_coins_amount)
    VALUES (1, 1, 100)
    ON DUPLICATE KEY UPDATE ctc_portfolio_coins_amount = VALUES(ctc_portfolio_coins_amount)

表:

enter image description here

1 个答案:

答案 0 :(得分:1)

算术:

INSERT INTO ctc_portfolio_coins (ctc_portfolio_coins_portfolio_fk, ctc_portfolio_coins_coin_fk, ctc_portfolio_coins_amount)
    VALUES (1, 1, 100)
    ON DUPLICATE KEY UPDATE
        ctc_portfolio_coins_amount = ctc_portfolio_coins_amount + VALUES(ctc_portfolio_coins_amount);

ctc_portfolio_coins_amount的引用是更新前列中的值。对VALUES(ctc_portfolio_coins_amount)的引用是传递给INSERT语句的值。