2017-09-17 11 views
1

J'ai cette chaîne SQL qui met à jour une ligne si elle existe ou crée une ligne si elle ne le fait pas, comment dois-je faire si elle met à jour ctc_portfolio_coins_amountComment mettre à jour une table avec l'ancienne valeur + la nouvelle valeur?

Si j'ai une valeur de 100 ou -100, comment puis-je soit le soustraire ou l'ajouter à la valeur actuelle lors de la mise à jour?

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) 

Tableau:

enter image description here

+0

Copie possible de [Insérer dans une table MySQL ou mise à jour si elle existe] (https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-update-if-exists) – miken32

Répondre

1

Arithmétique:

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); 

La référence à ctc_portfolio_coins_amount est la valeur dans la colonne avant la mise à jour. La référence à VALUES(ctc_portfolio_coins_amount) est la valeur transmise dans l'instruction INSERT.

+0

très agréable j'ai essayé quelque chose de similaire juste à l'intérieur de la 'valeur()' merci pour l'aide –