将值从NULL更新为存储在同一表中的特定值

时间:2015-09-15 10:38:53

标签: mysql sql

我是SQL的新手,所以需要帮助和建议我遇到的一件事。

我的表格如下:

Col1    Col2    Col3    Col4 
   1     AA      BB     NULL 
   2     AA      BB     NULL 
   3     AA      BB     1000 
   4     CC      DD     NULL 
   5     CC      DD     2000

我想更新Col4的NULL值,其值Col4 Col2col3值相同。

就像在我的第一行中Col4具有NULL而第三行Col4具有值(具有相同的Col1Col2值)

我只是想知道有没有办法可以用特定值更新NULL。

2 个答案:

答案 0 :(得分:0)

update your_table t1
join
(
  select col2, col3, max(col4) as col4
  from your_table
  group by col2, col3
) t2 on t1.col2 = t2.col2 and t1.col3 = t2.col3
set t1.col4 = t2.col4
where t1.col4 is null

答案 1 :(得分:0)

您可以使用join

执行此操作
update table t join
       (select col2, col3, max(col4) as col4
        from table t
        group by col2, col3
       ) tt
       on t.col2 = tt.col2 and t.col3 = tt.col3
    set t.col4 = tt.col4
    where t.col4 is null;

注意:这会选择col4的最大值,假设多行有值。