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