sql - 如何删除json数组元素中的对象?
问题描述
假设我有这种 json 格式:
[
{
"firstName": "John",
"lastName": "Doe"
}
]
我想删除“lastName”,我该怎么做?
到目前为止,我有这个查询并且它可以工作,但问题是它添加了另一个数组
UPDATE person
SET
field = jsonb_set(field::jsonb,
'{0}',
field::jsonb #- '{0,lastName}',
false)
我上面查询的结果:
[
[
{
"firstName": "John"
}
]
]
我想要的结果:
[
{
"firstName": "John"
}
]
解决方案
在第三个参数中使用数组的第一个元素(不是整个数组):
UPDATE person
SET
field = jsonb_set(field::jsonb,
'{0}',
(field::jsonb->0) - 'lastName',
false)
推荐阅读
- c++ - 开始调试会话时,MacOS 上的 VSCode LLDB 错误
- java - 在 2 个 jvm 参数 (-D) 中,只有一个可从类访问,而另一个不可访问
- types - 为什么 Rust 在语法上将类型的数据定义与函数和方法实现分开?
- python - 在heroku上使用带有硒的chrome代理
- python - 在列表的子列表中查找数字并将其相加
- angular - 无法连接到运行时进程,10000 毫秒后超时 - (原因:找不到匹配的有效目标
- python - 如何在excel文件中将三个字母的氨基酸转换为单个字母
- python-sphinx - 如何使用 `term` 角色在 sphinx-doc 中的词汇表中引用数学方程
- javascript - 如何创建缓冲区承诺函数
- opencv - Python 3.9.1 的 dlib 安装错误。如何知道哪个版本兼容?