如果字段的值为空字符串,我希望更新表中所有项目的字段。
对于上下文,我可以通过以下查询获得需要更新的项目数:
select count(*) from ddb_table where someField = "";
字符串
然后,我想更新这个表中someField
为空字符串的项。例如,我想将someField
更新为"foo"
,其中字段为空。
我想象INSERT OVERWRITE
查询看起来像这样:
insert overwrite ddb_table select field1, field2, field3, field4, someField = "foo" FROM ddb_table where someField = "";
型
换句话说,我想“保留”表中每个项目的所有原始值,除了someField
,我想更新为"foo"
。此更新只会发生在someField
为空的项目上。
我该怎么做?
1条答案
按热度按时间ddhy6vgd1#
对于我的原始查询:
字符串
结果是
someField
似乎采用了field4
中的值,而field4
将被设置为FALSE
。然后我试着:
型
这稍微好一点,除了
field4
将被设置为"foo"
,someField
将被设置为之前在field4
中的值。然后我试着:
型
这个对我很有效。出于某种原因,将我想更改的字段从字段列表的末尾移动到字段列表的中间似乎可以使其工作。