Mysql 仅当新值不为null时,在重复密钥更新时合并两个表

Mysql 仅当新值不为null时,在重复密钥更新时合并两个表,mysql,merge,notnull,Mysql,Merge,Notnull,我必须合并两个表,并且只有在新值不为null时才更新重复键。 我尝试了下面的代码,但没有成功 有人能帮忙吗? 塔克斯 我认为您的问题可能是您在update子句中引用值的方式。以下方法可能效果更好: INSERT INTO table1 SELECT * FROM temp ON DUPLICATE KEY UPDATE table1.tel = coalesce(values(tel),tel), table1.fax = coalesce(values(fax),fa

我必须合并两个表,并且只有在新值不为null时才更新重复键。 我尝试了下面的代码,但没有成功 有人能帮忙吗? 塔克斯


我认为您的问题可能是您在update子句中引用值的方式。以下方法可能效果更好:

INSERT
INTO    table1
SELECT  * FROM    temp  
ON DUPLICATE KEY UPDATE
  table1.tel = coalesce(values(tel),tel),
  table1.fax = coalesce(values(fax),fax)

我认为您的问题可能是您在update子句中引用值的方式。以下方法可能效果更好:

INSERT
INTO    table1
SELECT  * FROM    temp  
ON DUPLICATE KEY UPDATE
  table1.tel = coalesce(values(tel),tel),
  table1.fax = coalesce(values(fax),fax)

你试的时候发生了什么?是否插入了任何行,查询是否失败(出现错误)?这是失败的部分。您的查询看起来很好。table1根本没有更改或意外更改尝试时发生了什么?是否插入了任何行,查询是否失败(出现错误)?这是失败的部分。您的查询看起来很好。table1根本没有更改或意外更改