【发布时间】:2018-08-03 16:59:13
【问题描述】:
我正在尝试创建一个小函数,该函数将返回数组中的所有客户端,但我不断遇到错误。
DO $$
DECLARE
c_ids INTEGER[] := array[12879,16759];
BEGIN
SELECT *
FROM client
WHERE id IN (c_ids);
END $$;
做这样的事情的正确方法是什么?我需要将 c_ids 作为变量,因为我将在查询的许多地方使用它(示例直接查询不是结束查询)。
【问题讨论】:
-
不是 postgres 的超级专家,但我相信您需要为数据使用花括号。这篇文章是一个带有循环的示例,但我认为它可能会对您有所帮助stackoverflow.com/questions/9783422/postgres-array-for-loop
-
@JacobH 花括号用于将数组写入字符串,例如
'{1,2,3}'与ARRAY[1,2,3]。最终结果是一样的。 -
@eurotrash 谢谢你的解释,这是有道理的。
标签: sql arrays postgresql