2015-05-05 102 views
2

我已经将文件导入到MySQL表中,现在我只想用更改来更新现有的表。仅更新MySQL更新

我正在尝试这与选择之前做它作为更新之前。

这两个表都有一个唯一的ID字段和值字段。

下面的查询没有给出任何结果虽然在价值领域的差异:

SELECT a.id, a.value, b.value FROM a, b WHERE a.id=b.id AND a.value!=b.value

当我与a.value=b.value尝试它的作品,但我需要的变化。

任何想法?

我的目标是与来自B表更改​​后的值到底要更新表,但因为我不想改变“lastedit”领域,如果没有变化,我不能更新一切。

我无法将表a的结构更改为自动“lastedit”字段。

+0

不回答问题,但更好地使用加入代替 – apomene

+2

如果你没有得到任何结果,那么你没有任何记录具有相同的ID和不同的值... –

回答

2
UPDATE a INNER JOIN b ON a.id = b.id 
SET a.value = b.value 
WHERE a.value <> b.value 
; 

当然不过,这只是更新任何东西,如果(如马克的B他的评论说以上)的表中有相应的ID值。

+1

这不会更新任何东西。当我做'选择a.id,b.id,a.value,b.value FROM a,b WHERE a.id = b.id'我可以看到多个记录具有相同的id和不同的值。 –

+0

@RobertKaiser,也许如果你可以添加你的数据样本,它可能会帮助我们确定问题。 – Uueerdo