update table with data from other table if not null?

后端 未结 2 992
北海茫月
北海茫月 2021-01-21 08:31

Basically what I want to do is copy the value of a column from one table to another column in another table.

The query I am using is:

UPDATE t1 
SET prod         


        
相关标签:
2条回答
  • 2021-01-21 08:46

    You should just being doing the update across a join like this

    UPDATE
    t1 INNER JOIN t2 ON t1.variant_id = t2.variant_id
    SET t1.product_code = t2.value
    WHERE t2.key_id = 10
    AND t2.value IS NOT NULL
    

    There is no need to worry about nulls in that case as the inner join will only select rows where the variant_id exists in both tables.

    0 讨论(0)
  • 2021-01-21 08:59

    Use the old value if the query returns null:

    UPDATE t1 
    SET product_code = 
    ifnull(
        (SELECT `value` FROM t2 WHERE t2.variant_id = t1.variant_id AND key_id = 10), 
        product_code);
    

    FYI, in mysql using the old value doesn't count as an "update" in any way (either the number of rows affected or the logged changes)

    0 讨论(0)
提交回复
热议问题