【发布时间】:2020-11-10 09:28:22
【问题描述】:
我需要在结果 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->...
例如如果在列 meta (jsonb)
meta->'accounting'->'checkout'->>'url' = "hello"
然后在 myNode 字段中的结果 json 中必须设置值 hello。
【问题讨论】:
-
@a_horse_with_no_name 否。“myNode”的值必须是另一列“meta”的值。值位于 meta->'accounting'->'checkout'->>'url'
标签: postgresql-9.5