我有一个my_table
包含一些数据的 jsonb 列的表,例如,在一行中,该列可以包含以下数据:
[
{
"x_id": "1",
"type": "t1",
"parts": [
{ "part_id": "1", price: 400 },
{ "part_id": "2", price: 500 },
{ "part_id": "3", price: 0 }
]
},
{
"x_id": "2",
"type": "t1",
"parts": [
{ "part_id": "1", price: 1000 },
{ "part_id": "3", price: 60 }
]
},
{
"x_id": "3",
"type": "t2",
"parts": [
{ "part_id": "1", price: 100 },
{ "part_id": "3", price: 780 },
{ "part_id": "2", price: 990 }
]
}
]
我需要帮助来查找如何从给定 a和 a的parts
数组中删除元素。x_id
part_id
例子
给定x_id=2
and part_id=1
,我需要将数据更新为:
[
{
"x_id": "1",
"type": "t1",
"parts": [
{ "part_id": "1", price: 400 },
{ "part_id": "2", price: 500 },
{ "part_id": "3", price: 0 }
]
},
{
"x_id": "2",
"type": "t1",
"parts": [
{ "part_id": "3", price: 60 }
]
},
{
"x_id": "3",
"type": "t2",
"parts": [
{ "part_id": "1", price: 100 },
{ "part_id": "3", price: 780 },
{ "part_id": "2", price: 990 }
]
}
]
PS1:这些数据无法标准化,所以这不是一个可能的解决方案。
PS2:我正在运行 PostgreSQL 9.6
PS3:我已经检查了这个问题和这个问题,但是与其他问题相比,我的数据结构似乎太复杂了,因此我无法应用给定的答案。
Edit1 : json 数据可能很大,尤其是parts
数组,它的元素可以从少到 0 到几千。