这是我的query
,它有效。我将字典列表存储在我的jsonb
专栏中。
SELECT
items.title
FROM
items
WHERE
jsonb_path_exists(items.types::jsonb, '$[*] ? (@.target == "discount")')
有没有办法在没有jsonb_path_exists()
功能的情况下写这个?
此外,JSON 处理函数是否使用索引?
我想简化查询的可读性/外观,因为它太长了。并且好奇我是否可以通过不使用 JSON 处理函数来获得任何性能改进。
我试图用它替换它@?
但失败了。这就是我使用的(引自 PostgreSQL):
jsonb@? jsonpath → 布尔值
JSON 路径是否返回指定 JSON 值的任何项目?
'{"a":[1,2,3,4,5]}'::jsonb @? '$.a[*] ?(@ > 2)' → t
很感谢任何形式的帮助。