【发布时间】:2021-08-07 19:04:40
【问题描述】:
假设我有一个表 features,其中有一列 data 包含 json 对象。
CREATE TABLE features ( id INTEGER PRIMARY KEY, data json )
现在,一个示例数据对象可能是:
{"A":
{"B":
{"coordinates":[
{"x":1, "y":1},
{"x":10, "y":10}
]
}
}
现在我需要遍历data 列中的所有数据,并将coordinates 的值加倍。
我尝试将其设置为自己的值除以 0.5,但这似乎适用于第一行,然后将所有其他行设置为完全相同的值。
update features
set data =
(select json_set(features.data, "$.A.B.coordinates[0].x", (select json_extract(features.data, "$.A.B.coordinates[0].x")/0.5 from features))
from features);
如何在json_set 中引用它自己的值并为每一行重复?遍历每一行并将坐标加倍的最佳方法是什么?
【问题讨论】: