2015-10-29 45 views
0

我不知道是否没有简短的方法来更新只有存在密钥的行。否则,我不想插入一个新行,所以INSERT ON DPULICATE KEY不起作用。mysql只有存在时才更新否插入

例如:

我有一个包含地址的表可以说,200的客户对他们的唯一客户ID的主键。现在我得到一个新的包含更新数据的500个地址的excel列表。我想更新我桌上的所有200位顾客,但我不想添加其他300位顾客。

所以我要寻找的东西像

UPDATE上存在

此关键字的所有搜索导致INSERT对重复更新。所以我希望你能帮忙。

+0

我可能会错过这一点,但它不像“update master,addr set mastercol = addrcol where idmaster = idaddr”那样简单吗? – Nick

回答

1

我想你可以用另一种方式。

例如:

  1. 插入500客户到一个新表。
  2. 使用自然连接更新200个客户信息。

那么你可以使用更新,如:

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

然后删除在B表。