1
我有一个jsonb场PostgreSQL中有以下内容:PostgreSQL的JSON(二) - 转换字符串数组和更新领域
{ "object": { "urls": "A;B;C" } }
我想要做的就是更新的urls
值在对象内部并用分号分隔的值将字符串转换为JSON数组。所以结果应该是这样的:
{ "object" : { "urls": ["A", "B", "C"] } }
我发现了如何获得一个JSON阵列。使用
to_json(string_to_array(replace((json->'object'->'urls')::text, '"',''), ';'));
给我["A", "B", "C"]
(我想应该有这样做没有转换JSON的一种更好的方式 - >正文 - >排列 - > JSON建议,欢迎)
但我现在如何使用json数组更新urls
字段?可能我必须使用jsonb_set
?
它运作良好。我只需要添加'WHERE jdata - >'object' - >'urls'不是NULL'。否则,这些行的空值为json(或者在你的情况下为jdata)。 – mxlse