【问题标题】:Postgresql: Append object to a listPostgresql:将对象附加到列表
【发布时间】:2020-12-19 17:02:05
【问题描述】:

我的数据有一个键作为字符串,值是一个 json 列表,看起来像

ID|data
A1|{key1:[{k1:v1,k2:v2},{{k3:v3,k4:v4}]}

我想将 json,比如 {k9:v9,k7:v6} 附加到这个 key1 的列表中,类似于 -

ID|data
A1|{key1:[{k1:v1,k2:v2},{{k3:v3,k4:v4},{k9:v9,k7:v6}]}

我试过 jsonb_set 和其他函数,但是没有用,例子-

UPDATE tbl_name
SET data = jsonb_set(data,'{key1,1}','{k9:v9,k7:v6}'::jsonb) where ID = 'A1'

【问题讨论】:

    标签: arrays json postgresql append jsonb


    【解决方案1】:

    您需要使用jsonb_insert() 函数来附加该部分,在修复JSONB 值的格式之后(否则您会得到“错误:json 类型的输入语法无效” ) :

    UPDATE tbl_name
       SET data = jsonb_insert(data,'{key1,1}','{"k9":"v9","k7":"v6"}'::jsonb) 
     WHERE ID = 'A1'
    

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2015-09-28
      • 2017-11-17
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多