Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将UPDATE转换为INSERT into ON DUPLICATE KEY UPDATE语句_Mysql_Sql_Sql Update_Sql Insert - Fatal编程技术网

Mysql 将UPDATE转换为INSERT into ON DUPLICATE KEY UPDATE语句

Mysql 将UPDATE转换为INSERT into ON DUPLICATE KEY UPDATE语句,mysql,sql,sql-update,sql-insert,Mysql,Sql,Sql Update,Sql Insert,我有一个updatemysql语句,它工作得很好 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语句,以便在未找到具有相同表1\u nick\u no的行时,它可以添加新行。我相信在重复密钥更新时使用INSERT INTO是正确的方法

我有一个updatemysql语句,它工作得很好

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语句,以便在未找到具有相同
表1\u nick\u no
的行时,它可以添加新行。我相信在重复密钥更新时使用INSERT INTO是正确的方法。然而,我尝试了很长时间,但失败了


如何将此UPDATE语句转换为对应的INSERT into ON DUPLICATE KEY UPDATE语句

您要查找的是合并或UPSERT(更新/插入的缩写)。在mySQL中,您可以实现如下链接所述的颠覆


编辑问题中的查询以使用表别名,我们可以知道列的来源。Gordon Linoff,我编辑了查询以显示列所属的表。