无法从另一个jsonb列添加到json值

问题描述

我需要在结果中添加json新节点“ myNode”

此处查询

select  myJsonB || jsonb '{"myNode":"myNode_value"}' as data from myTable
where myJsonB @> '{"id": 11111}'

'

工作正常。为了使json成功,添加了值为 myNode_value 的新节点 myNode

很好。

但是我需要从另一个jsonb列( Meta )别名 MetaValue 中设置值。我尝试这个:

select  myJsonB  || jsonb '{"myNode" : MetaValue}' as data,Meta->'accounting'->'checkout'->>'url' as MetaValue from myTable
where myJsonB @> '{"id": 11111}'

但是我得到了错误

ERROR:  invalid input Syntax for type json
LINE 1: select  data || jsonb '{"myNode":MetaValue}' as data,Meta->...

例如如果在(jsonb)

列中
Meta->'accounting'->'checkout'->>'url' = "hello"

然后,字段 myNode 中的结果json必须设置值你好

解决方法

我找到了解决办法

aroundService(..)

我使用 jsonb_build_object ,但效果不佳