我有一个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。升级不是一种选择。
我错过了什么?
答案 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很快就会终止,所以升级确实需要在明年左右成为一种选择。