mysql 仅当存在时更新 不插入

标签 mysql sql-update

我想知道是否没有一种简单的方法可以仅在键存在时更新行。否则我不想插入新行,因此 INSERT ON DPULICATE KEY 不起作用。

例如:

我有一个表,其中包含 200 个客户的地址,其主键位于其唯一的客户 ID 上。现在我得到了一个包含 500 个地址的新 Excel 列表,其中包含更新的数据。我想要更新表中的所有 200 个客户,但不想添加其他 300 个客户。

所以我搜索类似的东西

现有更新

对此关键字的所有搜索都会导致 INSERT ON DUPLICATE UPDATE。所以希望你能帮忙。

最佳答案

我认为你可以使用另一种方式。

例如:

  1. insert the 500 customer into a new table.
  2. use nature join to update the 200 customer info.

然后你可以使用更新:

update A set A.address = B.address where A.id = B.id;

然后删除 B 表。

关于mysql 仅当存在时更新 不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33411040/

相关文章:

php - MySQL 在一个查询中合并两个更新查询

php - 在 JOIN 查询中获取平均值,适用于原始 MySql,但不适用于 Laravel 查询构建器

php - 循环遍历 php 表不起作用 [给出警告 : mysql_fetch_assoc() expects parameter 1 to be resource, bool 值]

javascript - nodejs 中的 mysql 函数第一次工作

postgresql - 在 postgres 中使用限制和偏移量更新表

php - mysql - 更新值是当前值加上新值

mysql - 我正在尝试使用 INNER JOIN 将 4 个表链接在一起

php - 使用 php 的剩余时间脚本

sql - 在 PostgreSQL 中使用 NULL 值更新 JSONB 列

PHP MySQL 不为 CRUD 应用程序更新