返回

postgresql—用于筛选JSONB数组中所有数组项满足条件的SQL查询

发布时间:2022-03-08 22:33:07 625
# 数据库

我以前也发过类似的帖子,但因为有上下文错误而删除了它。

我数据库中的一个表包含一个JSONB列,其中包含一个JSON对象数组。这和这个例子没有什么不同session我在下面模拟的桌子。

身份证件 用户id 快照 插入
1 37 {cart:[{product_id:1,price_cents:3000,name:“product A”},{product_id:2,价格_美分:2500,名称:“product B”} 2022-01-01 20:00:00.000000
2 24 {cart:[{product_id:1,price_cents:3000,name:“product A”},{product_id:3,price_cents:5500,name:“product C”} 2022-01-02 20:00:00.000000
3 88 {cart:[{product_id:4,price_cents:1500,name:“product D”},{product_id:2,价格_美分:2500,名称:“product B”} 2022-01-03 20:00:00.000000

我用来从这个表中检索记录的查询如下。

SELECT sessions.*
FROM sessions
INNER JOIN LATERAL (
    SELECT *
    FROM jsonb_to_recordset(sessions.snapshot->'cart')
    AS product(
        "product_id" integer,
        "name" varchar,
        "price_in_cents" integer
    )
) AS cart ON true;

我一直在尝试更新上面的查询,以便仅检索sessions表中的记录全部的购物车中的所有产品都有price_in_cents价值大于2000.

到目前为止,我还没有成功地提出这个问题,但如果这里有人能给我指出正确的方向,我将不胜感激。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像