如何在PostgreSQL V9.4中添加和删除新的json-array元素

问题描述 投票:0回答:1

我正在循环以仅使用某些元素来创建新的json矩阵,为此,我需要根据条件来遍历先前创建的json-array并按PUSH(添加元素)和POP(删除元素) 。

我收到类似的东西

[
{"id":1 , "data": "test_a"},
{"id":2 , "data": "test_t"},
{"id":3 , "data": "test_h"},
.....
]

而且我正在对循环执行这样的操作

DECLARE
_test       json;
i           json;
_new_jsn    json;
BEGIN
_test := SELECT json_agg(json_build_object('id', 1, 'data', 'test'))

        FOR i IN SELECT * FROM json_array_elements(_test) LOOP


            RAISE NOTICE 'element %',i;
        END LOOP;

从这里开始,我不知道如何在新参数中继续制作ADD和REMOVE元素。

我的过滤器基于IF-ELSE,所以如果有

       FOR i IN SELECT * FROM json_array_elements(_test) LOOP
         IF i->>id > 2 THEN
         ..... Add the element in _new_jsn
         ELSE
         .... Remove/Ignore the element
         END IF; 
        END LOOP;

我想在循环后收到类似这样的内容

[
{"id":3 , "data": "test_h"},
{"id":4 , "data": "test_c"},
.....
]
sql arrays database postgresql postgresql-9.4
1个回答
0
投票

我相信您正在寻找

© www.soinside.com 2019 - 2024. All rights reserved.