我有一个字段,它是空值和浮点值的混合(或者我尝试使默认值为0而不是null)我正在更新。如果行不匹配,则将其更新为null。我错过了什么?
UPDATE table1 t1 set field1 =
(SELECT t2.field1 from table2 t2
WHERE t2.some_field = t1.some_filed and
t2.some_other_field = foo)
但是任何不匹配的行:
WHERE t2.some_field = t1.some_field
MySQL输入空值(或零)。这两个表没有相同数量的字段,所以我只想更新几个字段,而不是覆盖更新语句中不匹配的任何字段。
答案 0 :(得分:1)
我认为您可以尝试使用INNER JOIN
查询
UPDATE table1 t1
INNER JOIN table2 t2
ON t2.some_field = t1.some_filed
SET t1.field1 = t2.field1
WHERE t2.some_other_field = 'foo'