标签: mysql sql
我需要为MySQL编写一个SQL查询,以便在存在时更新一行,但如果不存在则插入。
即
如果存在行...
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
如果它不存在......
INSERT INTO Table1 VALUES (...)
这可以在一个查询中完成吗?
答案 0 :(得分:12)
我相信你需要扭转你的逻辑才能使它发挥作用:
插入表格 - 如果存在(相同的密钥),则更新它。
这可以通过ON DUPLICATE语句实现,如下所示:
ON DUPLICATE
INSERT INTO Table1 VALUES(...) ON DUPLICATE KEY UPDATE column=column+1
查看手册here
答案 1 :(得分:7)
使用INSERT... ON DUPLICATE KEY UPDATE语法。
INSERT... ON DUPLICATE KEY UPDATE
请参阅manual
(为了搜索目的,顺便说一下,这通常被称为“upsert”)