首页 > 解决方案 > MYSQL - 在重复更新时插入

问题描述

我有一个像这样的表 USER:

用户 -> 主键(电子邮件、姓名)

email          name       points
abc@xcv.com    abc         12
fre@xcv.com    fre         18

假设现在用户 - abc 多赢了 10 分。

如果 useremail,name 在 USER 表中不存在,则插入 useremail 名称点。如果找到重复键,则仅更新点列。

标签: mysqlsqldatabasesql-updatesql-insert

解决方案


insert ... on duplicate key语法如下:

insert into users(email, name, points)
values('abc@def.com', 'abc', 10)
on duplicate key update points = points + values(points)

推荐阅读