我想知道是否没有一种简单的方法可以仅在键存在时更新行。否则我不想插入新行,因此 INSERT ON DPULICATE KEY 不起作用。
例如:
我有一个表,其中包含 200 个客户的地址,其主键位于其唯一的客户 ID 上。现在我得到了一个包含 500 个地址的新 Excel 列表,其中包含更新的数据。我想要更新表中的所有 200 个客户,但不想添加其他 300 个客户。
所以我搜索类似的东西
现有更新
对此关键字的所有搜索都会导致 INSERT ON DUPLICATE UPDATE。所以希望你能帮忙。
最佳答案
我认为你可以使用另一种方式。
例如:
- insert the 500 customer into a new table.
- 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/