如果特定列值不同,则更新行,否则插入新行

时间:2015-10-18 18:55:48

标签: mysql sql database upsert

我有一张桌子

UserId    Name    Age
1         Lisha   23
2         Ankur   21
3         Karan   22

对于特定的给定UserId,如果给定年龄与当前年龄不同,我想更新年龄。否则,如果UserId不存在,我想插入一个新行。

如何在单个SQL语句中执行此操作。

1 个答案:

答案 0 :(得分:1)

MySQL有一个简洁的语法,尽管它以相反的方式进行 - 你定义了你想要插入的内容,如果产生了重复的键错误,你可以定义你的方式。我想改为更新数据:

INSERT INTO users
(userid, age)
ON DUPLICATE KEY UPDATE age = VALUES(age)