Mysql在更新语句中使用coalesce

时间:2011-03-10 18:30:46

标签: mysql coalesce

如何在更新语句中使用coalesce。我见过的所有例子都使用了select语句。

UPDATE d.n n JOIN d.o o ON n.ID = o.ID SET n.OC = o.OC

需要n.oc到Coalesce( n.oc,0)但是Sql失败

CALL SQLExecute(CONCAT('UPDATE d.n  n JOIN data.o_ o ON n.id = o.id SET COALESCE(n.OC, null) = o.OC' ));  

2 个答案:

答案 0 :(得分:1)

您的查询UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET COALESCE(n.OC, null) = o.OC 没有意义。如果x不为null,则COALESCE(x,y)使用x,否则使用y。

所以你的查询应该是

UPDATE d.n  n JOIN data.o_ o ON n.id = o.id SET n.OC = o.OC //if null allowed

或者

UPDATE d.n  n JOIN data.o_ o ON n.id = o.id SET n.OC = COALESCE(o.OC,'somevalue') //if null not allowed

答案 1 :(得分:0)

哦,我的。你无法更新功能!

SET n.OC = COALESCE(o.OC, 0) 

至少