无法使用LIMIT和OFFSET过滤json_agg

问题描述

数据 jsonb 列类型

json:

{
    "cart_id": "84e646d6a22a","contacts": {
        "customer": {
            "email": "dd@aaaaa.com","name": "Name","phone": "1234567"
        },"receiver": {
            "is_customer": true,"name": "AAAA,"phone": "99999"
        }
    }
  }

查询

SELECT id FROM shop_order 
WHERE data->'contacts'->'customer'->>'phone' like '%12345%' limit 3 offset 3

好。它是成功返回过滤器的结果。返回3条记录。很好。

但是我需要将结果作为json。

我尝试这个:

 select json_agg (json_build_object('data',t.data)) from shop_order as t 
WHERE  t.data->'contacts'->'customer'->>'phone' LIKE '%12345%' LIMIT  3 offset 3

我需要返回限制和偏移量为3的返回结果

但是返回空结果。

为什么?

P.S。 此查询

select json_agg (json_build_object('data',t.data))  from shop_order as t 

从db返回所有记录。但是我在ARRAY中只需要3个json对象。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)