【发布时间】:2021-05-05 09:01:48
【问题描述】:
我需要在现有的 json 对象中添加一个新的键值对。将不胜感激。
json:
{
"json_col": [
{
"val1": 1,
"val2": 0,
"val3": "qwe"
}
]
}
我想出了这个查询
UPDATE table SET
json_col = jsonb_set(
json_col,
'{json_col}', json_col->'json_col' || '{"test":123}'))
where id=6400
它会输出:
{
"json_col": [
{
"val1": 1,
"val2": 0,
"val3": "qwe"
},
{
"test": 123
}
]
}
但是我需要这个 json 是一个单一的对象(没有额外的括号),像这样:
{
"json_col": [
{
"val1": 1,
"val2": 0,
"val3": "qwe",
"test": 123
}
]
}
【问题讨论】:
-
您的 PostgreSQL 服务器的版本是什么? json_col 是一个数组 - 你想更新哪个元素?
-
@JuliusTuskenis 12.6,是的,没错,我想更新对象,它是 json_col 数组中的一个元素
-
我认为数组中可能有几个元素。那么你想更新哪个元素:数组中的一个特定元素还是所有元素?
-
这个数组只有一个元素,所以我只想更新一个元素
标签: json postgresql jsonb