Объединить две таблицы ON DUPLICATE KEY UPDATE, только если новое значение не равно NULL - PullRequest
1 голос
/ 15 июня 2011

Я должен объединить две таблицы и обновить дубликат ключа, только если новое значение не равно нулю.Я попробовал приведенный ниже код безуспешно Кто-нибудь может помочь?Спасибо!

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 Ответ

1 голос
/ 15 июня 2011

Я думаю, что ваша проблема может заключаться в том, что вы ссылаетесь на значения в вашем предложении обновления. Следующее может работать лучше:

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