错误:运算符不存在:整数=整数[]

时间:2018-02-23 15:29:05

标签: sql arrays postgresql

我试图创建一个小函数来返回数组中的所有客户端,但我一直遇到错误。

DO $$
DECLARE
    c_ids INTEGER[] := array[12879,16759];
BEGIN
  SELECT *
  FROM   client
  WHERE  id IN (c_ids);
END $$;

做这样的事情的正确方法是什么?我需要将c_ids作为变量,因为我将在查询的许多地方使用它(示例直接查询不是结束查询)。

1 个答案:

答案 0 :(得分:3)

IN运算符使用=运算符比较值。如果要检查数组中的值,则需要使用ANY

DO $$
DECLARE
    c_ids INTEGER[] := array[12879,16759];
BEGIN
  SELECT *
  FROM   client
  WHERE  id = ANY (c_ids);
END $$;