MySQL在重复键上插入行更新多列

DrX*_*eng 16 mysql

我有一张桌子(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 + ?
Run Code Online (Sandbox Code Playgroud)

是否有更简洁的查询来实现这一目标?因为我已经简化了查询,所以有超过十个统计数据.

vea*_*top 33

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)
Run Code Online (Sandbox Code Playgroud)