我有两个 MySQL 表,它们的结构如下:
table foo(
foo_id varchar(32),
field1 varchar(32),
field2 varchar(32),
bar_id varchar(32)
);
table bar(
bar_id varchar(32),
field1 varchar(32),
field2 varchar(32)
);
我想更新 foo
表,使 field1
和 field2
的值与 bar
相同> 表。我尝试了以下两个查询,它们都运行没有错误,但没有得到我想要的结果:
UPDATE foo LEFT JOIN bar ON foo.bar_id = bar.bar_id
SET foo.field1 = bar.field1 AND foo.field2 = bar.field2;
还有
UPDATE foo,bar SET foo.field1 = bar.field1
AND foo.field2 = bar.field2 WHERE foo.bar_id = bar.bar_id
但都不起作用。我在这里缺少什么?
最佳答案
我想你可能对AND
有疑问;应该用逗号代替。这样我认为您正在将 foo.field1
更新为 (bar.field1 AND foo.field2 = bar.field2)
( 的非零值之间的逻辑连接) bar.field1
和 field2
-s 相等),我很确定这不是您的意思。但没有测试;可能是错误的。
关于MYSQL:使用另一个相关表中的值更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866705/