【发布时间】:2020-08-09 23:14:33
【问题描述】:
如何在 postgresql 中连接一个连接的 jsonb 对象内的字符串?换句话说,我在同一个查询中使用 JSONb 连接运算符以及文本连接运算符并遇到了麻烦。
或者...如果我应该执行一个完全不同的查询,我会很高兴听到建议。目标是更新包含 jsonb 列的行。我们不想覆盖查询中未提供的 jsonb 列中的现有键值对,并且我们还想一次更新多行。
我的查询:
update contacts as c set data = data || '{"geomatch": "MATCH","latitude":'||v.latitude||'}'
from (values (16247746,40.814140),
(16247747,20.900840),
(16247748,20.890570)) as v(contact_id,latitude) where c.contact_id = v.contact_id
错误:
ERROR: invalid input syntax for type json
LINE 85: update contacts as c set data = data || '{"geomatch": "MATCH...
^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1: {"geomatch": "MATCH","latitude":
SQL state: 22P02
Character: 4573
【问题讨论】:
-
我认为我需要做的就是在文本周围添加括号...数据 || ('{"geomatch": "MATCH","latitude":'||v.latitude||'}')::jsonb 这似乎可行。
标签: postgresql concatenation jsonb