一尘不染

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

sql

我有此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 ONDUPLICATE KEY UPDATE是正确的方法。但是,我尝试了很长时间却失败了。

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


阅读 321

收藏
2021-03-08

共1个答案

一尘不染

您正在寻找的是MERGE或UPSERT(UPDATE / INSERT的缩写)。在mySQL中,您可以实现以下链接中所述的UPSET

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

2021-03-08