我有一个表(name, date, stat1, stat2, stat3)
,(name, date)
就是PK。当我插入行时,会出现重复的键,我需要对三个统计数据进行总结。我在 Java 中将以下查询与 PreparedStatement 结合使用:
INSERT INTO tb (name, date, stat1, stat2, stat3)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE stat1 = stat1 + ?, stat2 = stat2 + ?, stat3 = stat3 + ?
是否有更简洁的查询来实现这一点?因为我简化了查询,所以那里有十多个统计信息。
最佳答案
INSERT INTO tb (name, date, stat1, stat2, stat3)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE stat1 = stat1 + VALUES(stat1), stat2 = stat2 + VALUES(stat2), stat3 = stat3 + VALUES(stat3)
关于MySQL在重复键上插入行更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235501/