当子查询不匹配时,update为float字段插入0或null

时间:2013-06-13 07:18:18

标签: mysql sql-update

我有一个字段,它是空值和浮点值的混合(或者我尝试使默认值为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输入空值(或零)。这两个表没有相同数量的字段,所以我只想更新几个字段,而不是覆盖更新语句中不匹配的任何字段。

1 个答案:

答案 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'