SQL查询 - 如果存在则更新,否则插入

时间:2011-03-14 09:44:17

标签: mysql sql

我需要为MySQL编写一个SQL查询,以便在存在时更新一行,但如果不存在则插入。

如果存在行...

UPDATE Table1 SET (...) WHERE Column1='SomeValue'

如果它不存在......

INSERT INTO Table1 VALUES (...)

这可以在一个查询中完成吗?

2 个答案:

答案 0 :(得分:12)

我相信你需要扭转你的逻辑才能使它发挥作用:

插入表格 - 如果存在(相同的密钥),则更新它。

这可以通过ON DUPLICATE语句实现,如下所示:

INSERT INTO Table1 VALUES(...)
ON DUPLICATE KEY UPDATE column=column+1

查看手册here

答案 1 :(得分:7)

使用INSERT... ON DUPLICATE KEY UPDATE语法。

请参阅manual

(为了搜索目的,顺便说一下,这通常被称为“upsert”)