我创建了一个类似于以下函数的函数,
DROP FUNCTION if exists test_list_parameter();
CREATE or REPLACE FUNCTION test_list_parameter(???)
returns setof test
as
$$
select * from test
where test.id in ($1);
$$
language sql
如何设置它以同时查询多个ID?
类似于以下代码, 我们需要在id大于1时设置参数,例如where子句中的(1,2,3,4 ...)。 谢谢您的帮助。
答案 0 :(得分:1)
只需传递ID为数据类型的数组即可。如果是整数,则传递int[]
。如果是文字,请使用text[]
等。此外,请使用ANY
代替IN
CREATE or REPLACE FUNCTION test_list_parameter( idlist int [])
returns setof test
as
$$
select * from test
where test.id = ANY(idlist);
$$
language sql
命名为
select * from test_list_parameter(ARRAY[1,3]);