3

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

我正在尝试执行此查询,这似乎足够基本:

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

它给出了这个错误:

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

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

我错过了什么?

4

2 回答 2

5

试试这个:

select id, alias from users 
where (select user_list from user_lists where id = 2 limit 1) 
@> ARRAY[id];
于 2012-05-18T09:57:25.170 回答
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 很快就会结束生命,所以升级确实需要在明年左右成为一个选项。

于 2012-05-18T11:03:36.207 回答