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

标签 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 + ?

是否有更简洁的查询来实现这一点?因为我简化了查询,所以那里有十多个统计信息。

最佳答案

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/

相关文章:

mysql - 为什么 FROM_UNIXTIME 返回 1970 年的日期?

mysql - Mysql select查询中AND和OR运算符的优先级

php - 当只有一行时,MySQLi 找到两行?

php - 存储不变数据的最佳方式

php - 我想用 MySQL 填充数据(按年计算月度 session 数据)

php - 如何使用 Laravel5 从查询中删除 "\"

php - 如何创建一个使用菜单/单选按钮从 MySQL 数据库提取数据的网站?

mysql - 基于公共(public)属性的采摘(rails)

php - 向MySQL插入字符串后,字符 '\n'(换行符)消失

php - mysqli_query 返回 false,错误代码为 0,但查询成功