需要帮助创建一个查看 json 对象内部并将变量传递到搜索字符串中的 SQL 查询

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

我有一个名为 hobbies 的数据库和一个名为 games 的表。 在 games 表中,我有一个名为 titles 的字段。 在字段标题中是一个 json 对象。

[{
    "titles": ["Double Dragon", "TecmoBowl"]
}]

SQL查询

select *
from hobbies.games
where  jsonb_path_exists(titles, '$.titles[*] ? (@ == "{{ titles }}")'); 

{{ titles }} 是我的网络表单变量的格式。执行查询时出现以下错误。

查询错误:error: function jsonb_path_exists(jsonb,text) does not exist.

我的问题是我不能在这个查询中使用绑定变量,除非它使请求无效。

我也试过这个例子,但没有成功。

select
from hobbies.games
WHERE jsonb_path_exists(titles, '$.** ? (@.type() == "string" && @ like_regex "{{ 
titles }}")')

如果我用标题“双龙”替换绑定变量,它会按预期工作,但变量的大括号似乎使我的请求无效。 非常感谢任何帮助。

如何将变量从 Web 表单传递到动态搜索 json 对象的 sql 查询中,并且仍然满足 jsonb_path_exists 命令的字符串要求?

希望这是有道理的。

感谢您提供的任何帮助。

sql jsonb postgresql-9.3
© www.soinside.com 2019 - 2024. All rights reserved.