postgresql:任何关于子查询返回数组

时间:2012-05-18 09:35:09

标签: arrays postgresql subquery any

我有一个user_lists表,其中包含integer []类型的user_list列。

我正在尝试执行此查询,这看起来很基本:

select id, alias from users where id = ANY(select user_list from user_lists where id = 2 limit 1);

它给出了这个错误:

错误:运算符不存在:整数=整数[]
提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。

我正在使用postgres 8.3.11。升级不是一种选择。

我错过了什么?

2 个答案:

答案 0 :(得分:5)

请改为尝试:

select id, alias from users 
where (select user_list from user_lists where id = 2 limit 1) 
@> ARRAY[id];

答案 1 :(得分:1)

你也可以尝试这样的事情(应该在8.3上工作,没有人可以参与):

SELECT u.id, u.alias 
FROM users u JOIN user_lists ul ON u.id = ANY(ul.user_list) 
WHERE ul.id = 2;

哦,你错过了一些错误修正(8.3.18是最新的),我希望8.3很快就会终止,所以升级确实需要在明年左右成为一种选择。