当每行递增每个值时,如何使用“ON DUPLICATE KEY UPDATE”增加MySql中的字段?

时间:2016-06-15 01:53:04

标签: mysql sql

increment a field with same value这样的问题 但我希望每行增加一个值

例如: a是主键

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      |

我试过了,但是失败了。谢谢回答

1 个答案:

答案 0 :(得分:0)

通常,如果您尝试INSERT,请插入count=1,而不是share_count+2read_count+3

如果我猜错了你的目标,你需要这样的东西:

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