2016-12-05 51 views
0

此查询有什么问题?如果字段不等于另一个表的mysql更新

update TA,TB 
set TA.change = 1,TA.value = TB.value 
where 
TA.name = TB.name and TA.value <> TB.value 

我想从TB TA更新时TB值的变化

+0

什么是您所遇到的问题? –

+0

名称为uniqe,且值不为NULL。 我想更新具有相同名称和不同值的行,但查询不要这样做 – Ali

回答

0

您所查询的是好的。我将它与一个明确join写:

update TA join 
     TB 
     on TA.name = TB.name 
    set TA.change = 1, 
     TA.value = TB.value 
where TA.value <> TB.value; 

您可能需要采取NULL值考虑:

update TA join 
     TB 
     on TA.name = TB.name 
    set TA.change = 1, 
     TA.value = TB.value 
where not (TA.value <=> TB.value); 
+0

谢谢,但它给我一个错误,因为“开”,没有它,还没有工作! – Ali

相关问题