我有一个名为 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 命令的字符串要求?
希望这是有道理的。
感谢您提供的任何帮助。