如何在 WHERE IN 子句中使用 PostgreSQL 数组?
How to use PostgreSQL array in WHERE IN clause?
我正在尝试简化以下 SQL 语句(为清楚起见包装到函数中)。
在 where ... in (/*array*/)
子句中使用 array
的 simpler/natural 句法是什么?
(没有 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))
$$;
不要使用IN
使用ANY
,这也消除了unnest
的需要
where f.id = any (p_ids)
我正在尝试简化以下 SQL 语句(为清楚起见包装到函数中)。
在 where ... in (/*array*/)
子句中使用 array
的 simpler/natural 句法是什么?
(没有 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))
$$;
不要使用IN
使用ANY
,这也消除了unnest
where f.id = any (p_ids)