1

我有一个混合了空值和浮点值的字段(或者我尝试将默认值设为 0 而不是空值),我正在更新它。如果一行不匹配,则将其更新为 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 输入一个空值(或零)。这两个表没有相同数量的字段,所以我只想更新一些字段,而不是覆盖更新语句中不匹配的任何内容。

4

1 回答 1

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'
于 2013-06-13T07:19:57.187 回答