2016-06-15 2 views
0

increment a field with same value のようなこの質問が、私は、各行の増分に各値例えば各行が各値をインクリメントするときに "ON DUPLICATE KEY UPDATE"を使用してMySqlのフィールドをインクリメントする方法はありますか?

達成したい: を私が試した主キー

Original data 
a | share_count | read_count | 
1 |  2  |  3  | 

through 
INSERT INTO table (a, share_count,read_count) 
VALUES(1,share_count+1,read_count+2),(2,share_count+2,read_count+3) 
ON DUPLICATE KEY UPDATE 
a=VALUES(a),share_count=VALUES(share_count),read_count=VALUES(read_count) 

Goal result 
a | share_count | read_count | 
1 |  3  |  5  | 
2 |  2  |  3  | 

ですが、fail.Thanks

+0

あなたはサンプルデータを提供し、あなたがやろうとしているかを説明することはできます:

私はあなたのようなものが必要正しくあなたの目標を推測する場合は? –

答えて

0

に答えるために通常INSERTにしようとするとまたはread_count+3ではなくcount=1を挿入します。

http://sqlfiddle.com/#!9/9d4c6/1

INSERT INTO t1 (a, share_count,read_count) 
VALUES 
(1,1,1), 
(2,1,1) 
ON DUPLICATE KEY UPDATE 
share_count=share_count+1,read_count=read_count+1 
関連する問題