仅当新值不为空时,才合并两个表ON DUPLICATE KEY UPDATE

时间:2011-06-15 14:02:58

标签: mysql merge notnull

我必须合并两个表,并且仅当新值不为null时才更新重复键。 我尝试了下面的代码没有成功 有人可以帮忙吗? 感谢名单!

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

1 个答案:

答案 0 :(得分:1)

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

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