如何在WHERE IN子句中使用PostgreSQL数组?

4
我正在尝试简化以下SQL语句(为了清晰起见,它被包装成函数)。
在“where ... in (/*array*/)”子句中,使用array的更简单/自然的语法方式是什么? (不需要select * from unnest(...)模板代码)
CREATE OR REPLACE FUNCTION get_items(p_ids int[])
 RETURNS SETOF text
 LANGUAGE sql
AS $$
  select t.name 
    from my_table t 
   where f.id in (select * from unnest(p_ids))
$$;
 
 
 
 
1个回答

7
不要使用 IN,请使用 ANY,这还可以避免拆分。
where f.id = any (p_ids)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接