2017-09-17 29 views
1

私は100、または-100の値を持っている場合、それはctc_portfolio_coins_amount古い値+新しい値でテーブルを更新するにはどうすればよいですか?

を更新した場合、それは、私は私がどのように、どのように行うのかしていない場合、それは、行が存在するか、作成する場合、行を更新し、このSQL文字列を持っていますそれを減算するか、または更新時に現在の値に追加しますか?

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

+0

[可能な場合はMySQLテーブルまたは更新プログラムに挿入](https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-update-if-exists) – miken32

答えて

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ステートメントに渡される値です。

+0

Thats私は何かをsimilairの 'value()'の助けを借りて試してみました –

関連する問題