Arrays 将子查询中的PostgreSQL数组用作任何表达式时出现问题

Arrays 将子查询中的PostgreSQL数组用作任何表达式时出现问题,arrays,postgresql,subquery,Arrays,Postgresql,Subquery,我试图在表中搜索数组中包含的值。例如,此查询(不使用子查询)按预期工作: SELECT * FROM twitter_users WHERE twitter_id = ANY('{278929455,234874457,441723533,126840137}'::varchar[]); 但是,在any中使用子查询时,它会失败: SELECT * FROM twitter_users WHERE twitter_id = ANY( SELECT follower_ids FRO

我试图在表中搜索数组中包含的值。例如,此查询(不使用子查询)按预期工作:

SELECT * 
FROM twitter_users 
WHERE twitter_id = ANY('{278929455,234874457,441723533,126840137}'::varchar[]);
但是,在any中使用子查询时,它会失败:

SELECT * 
FROM twitter_users 
WHERE twitter_id = ANY(
  SELECT follower_ids
  FROM twitter_followers_logs WHERE ID =
    (
      SELECT MAX(id) MaxId
      FROM twitter_followers_logs
      WHERE twitter_user_id = 2992
    )
);

ERROR:  operator does not exist: character varying = character varying[]
LINE 3: WHERE twitter_id = ANY(
                         ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
这些表格的定义如下:

CREATE TABLE twitter_users (
    id integer NOT NULL,
    twitter_id character varying,
    screen_name character varying
);

CREATE TABLE twitter_followers_logs (
    id integer NOT NULL,
    twitter_user_id integer,
    follower_ids character varying[] DEFAULT '{}'::character varying[],
    created_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone NOT NULL
);

如何使该子查询处于正确运行ANY表达式的状态?

您的子查询不返回数组。表“twitter\u followers\u logs”不包含列“Id”或列“twitter\u user\u Id”。将创建表格和插入实际表格的语句粘贴到您的问题中。感谢阅读,我添加了创建表格以消除混淆。我想我已经得到了它,在子查询结果上进行了转换。做一些最后的测试。你可以写下自己的结果作为答案,然后接受它。