问题描述
我需要在结果中添加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 ,但效果不佳