Re: Arrays and ANY problem
От | Michael Lewis |
---|---|
Тема | Re: Arrays and ANY problem |
Дата | |
Msg-id | CAHOFxGpQ6Xk3CiM+FYBopMf97MLmxvhmd22y3WXVG4+a3HTBMA@mail.gmail.com обсуждение исходный текст |
Ответ на | Arrays and ANY problem (David Salisbury <dsalis@ucar.edu>) |
Ответы |
Re: Arrays and ANY problem
|
Список | pgsql-general |
db=# select name from table_name_ds_tmp where ARRAY[categoryid] = ANY ( select string_to_array( '200,400', ',')::bigint[] );
Using either of the below instead, I get the proper result. Why doesn't ANY work? I do not know.
select name from table_name_ds_tmp where ARRAY[categoryid] <@ ( select (string_to_array( '200,400', ','))::bigint[] );
select name from table_name_ds_tmp where categoryid = ANY ( ARRAY[ 200, 400]::BIGINT[] );
I used-
drop table if exists pg_temp.table_name_ds_tmp;
create temp table table_name_ds_tmp AS(
SELECT 100::BIGINT AS categoryid, 'one'::VARCHAR AS name UNION ALL
SELECT 200::BIGINT, 'two'::VARCHAR UNION ALL
SELECT 300::BIGINT, 'three'::VARCHAR UNION ALL
SELECT 400::BIGINT, 'four'::VARCHAR
);
drop table if exists pg_temp.table_name_ds_tmp;
create temp table table_name_ds_tmp AS(
SELECT 100::BIGINT AS categoryid, 'one'::VARCHAR AS name UNION ALL
SELECT 200::BIGINT, 'two'::VARCHAR UNION ALL
SELECT 300::BIGINT, 'three'::VARCHAR UNION ALL
SELECT 400::BIGINT, 'four'::VARCHAR
);
В списке pgsql-general по дате отправления: