将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

时间:2016-07-05 11:13:23

标签: mysql sql sql-update sql-insert

我有这个UPDATE MySQL语句,工作正常。

UPDATE table1 
Inner Join table2 
ON table2.id = table1.gw_id 
SET table1.field1=1, table1.field2=2
WHERE table1.nick_no=4 AND table2.addr=123

我想转换此UPDATE语句,以便在找不到具有相同table1_nick_no的行时可以添加新行。我相信使用INSERT INTO ON DUPLICATE KEY UPDATE是正确的方法。但是,我试了很久但都失败了。 Adding Inner join and where clause to INSERT INTO ON DUPLICATE KEY UPDATE

如何将此UPDATE语句转换为相应的INSERT INTO ON DUPLICATE KEY UPDATE语句?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是MERGE或UPSERT(UPDATE / INSERT的缩写)。在mySQL中,您可以按照以下链接

中的说明实现UPSET

http://mechanics.flite.com/blog/2013/09/30/how-to-do-an-upsert-in-mysql/