SQL 查询 - 如果存在则更新,否则插入
Posted
技术标签:
【中文标题】SQL 查询 - 如果存在则更新,否则插入【英文标题】:SQL query- Update if exists, insert otherwise 【发布时间】:2011-03-14 09:44:16 【问题描述】:我需要为 mysql 编写一个 SQL 查询,以便如果行存在则更新,如果不存在则插入。
即
如果行存在...
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
如果它不存在...
INSERT INTO Table1 VALUES (...)
这可以在一个查询中完成吗?
【问题讨论】:
【参考方案1】:我认为你需要颠倒你的逻辑才能让它发挥作用:
插入一个表 - 如果它存在(相同的键)然后更新它。
这可以通过ON DUPLICATE
语句来实现,如下所示:
INSERT INTO Table1 VALUES(...)
ON DUPLICATE KEY UPDATE column=column+1
查看手册here
【讨论】:
非常聪明。正是我所追求的。谢谢。 太棒了。虽然这篇文章很旧,但它非常有帮助。你摇滚。【参考方案2】:使用INSERT... ON DUPLICATE KEY UPDATE
语法。
见manual
(出于搜索目的,顺便说一句,这通常被称为“upsert”)
【讨论】:
以上是关于SQL 查询 - 如果存在则更新,否则插入的主要内容,如果未能解决你的问题,请参考以下文章