如何在PostgreSQL中更新JSON空值

时间:2019-05-01 00:09:11

标签: postgresql

当我尝试如下更新时,我收到了invalid input syntax for type json. Expected "," or "}"

记录的问题内容为{'open': ','}
如果记录的内容为{'open': ',abc'},我可以像{'open': 'abc'}一样正确更新。

update hoge SET extra =
REPLACE(
       extra::TEXT,
       extra->>'open',
       regexp_replace(extra->>'open', '^,', '')
)::JSONB

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用JSONB_SET更新和过滤where子句中要更新的记录

update hoge set extra = jsonb_set(extra, '{open}' ,'"abc"')
  where extra->>'open' = ',abc';

DEMO