1

更新中の null 値と float 値が混在する (または null ではなくデフォルト値を 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 は null 値 (またはゼロ) を入れます。これらの 2 つのテーブルには同じ数のフィールドがないため、いくつかのフィールドを更新し、更新ステートメントで一致しないものは上書きしないようにします。

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 に答える