2016-12-05 85 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

相關問題