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

标签 mysql sql

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

如果行存在...

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

如果不存在...

INSERT INTO Table1 VALUES (...)

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

最佳答案

我相信你需要颠倒你的逻辑才能让它工作:

插入表 - 如果它存在(相同的键)然后更新它。

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

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

查看手册here

关于mysql - SQL查询-如果存在则更新,否则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296946/

相关文章:

mysql - 如何查询一个字段与另一个字段相关的最大值?分组依据不起作用? (MySQL)

mysql - 在 mysql 中连接两个表时丢失数据?

php - 根据 MySQL 中 ORDER BY 的可用性考虑多列的值

sql - 如何加入组/用户关系中的表?

mysql - 最常见的工作日查询

mysql - 无法使用 SSH.Net 隧道连接到 C# 中任何指定的 MySQL 主机

mysql - 是否可以将 GROUP BY 语句嵌套在一起?

php - Illuminate\Database\QueryException (2002) SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL : select * from `rents` )

mysql - 使用 SQL 导出时清理值(如果为 null 或类似值)

mysql - 使用 WHERE 多次指定联合条件和排除列