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

Urb*_*coz 4 mysql sql

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

如果行存在...

UPDATE Table1 SET (...) WHERE Column1='SomeValue'
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO Table1 VALUES (...)
Run Code Online (Sandbox Code Playgroud)

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

Big*_*aby 12

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

插入表中 - 如果存在(相同的键),则更新它.

这可以通过如下ON DUPLICATE声明来实现:

INSERT INTO Table1 VALUES(...)
ON DUPLICATE KEY UPDATE column=column+1
Run Code Online (Sandbox Code Playgroud)

这里查看手册


fro*_*die 7

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

请参阅手册

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