【发布时间】:2021-08-09 20:43:43
【问题描述】:
我有一个包含以下记录的 Postgresql 表(为您提供方便的 json):
[
{
"field": "example1",
"jsonfield": {"name": "name1", "option": "option1}
},
{
"field": "example2",
"jsonfield": {"name": "name2", "option": "option2}
},
{
"field": "example3",
"jsonfield": {"name": "name3", "option": "option3}
}
]
现在我有多个合适的键/值对列表可供从该表中选择
SELECT
field, jsonfield
FROM table
WHERE jsonfield @> ANY (ARRAY['{"name": "name1", "option": "option1}', '{"name": "name3", "option": "option3}']::jsonb[])
效果很好,返回第一条和第三条记录
但是,我想将数组作为查询参数传递
SELECT
field, jsonfield
FROM table
WHERE jsonfield @> ANY (ARRAY[(:search_data)]::jsonb[])
这会引发以下错误:
Query 1 ERROR: ERROR: cannot cast type record to jsonb
如何将数组作为查询参数传递?
我应该使用类似 string_to_array 的东西吗?
我使用 PostgreSQL 13.3
【问题讨论】:
-
如果我不使用
ARRAY,我会收到"[" must introduce explicitly-specified array dimensions. -
要回答这部分
How do I pass the array as a query param?,我们需要知道您使用的是什么语言甚至框架。
标签: postgresql