查询:UPDATE item_table SET field1 = field1_spanish,field2 = field2_spanish;
问题:如果field1_spanish不为空,如何仅使用field1_spanish更新field1?如果field2_spanish不为空,我想用field2_spanish更新field2.
谢谢!
解决方法
http://sqlfiddle.com/#!5/58554/1
update item_table set field1 = coalesce(field1_spanish,field1),field2 = coalesce(field2_spanish,field2)
coalesce()函数将返回传递给它的第一个参数,该参数不为null.所以在这种情况下,由于field2_spanish为null,它将field2设置为field2(基本上什么都不做).
要支持空字符串和NULL值,请尝试以下操作:
http://sqlfiddle.com/#!5/b344f/3
update item_table set field1 = case when coalesce(field1_spanish,'') = '' then field1 else field1_spanish end,field2 = case when coalesce(field2_spanish,'') = '' then field2 else field2_spanish end