Обсуждение: ...where 'value' = array[]

Поиск
Список
Период
Сортировка

...where 'value' = array[]

От
zach cruise
Дата:
i have table, like so:
group.group_name (varchar) | group.group_array (varchar[])
-
west coast | {CA,WA}
east coast | {NY,MA}

i can do this:
select group_name from group where 'CA' = any(array['CA','WA']);

but i need to select group_name where state_abbreviation is in
group_array, something like:
select group_name from group where 'CA' = any(group_array);
or
select group_name from group where 'CA' in (group_array);
or
select group_name from group where 'CA' in (select group_array from
group where true);

all ()[]{} have me confused
http://www.nabble.com/IN-with-arrays-td10011058.html

Re: ...where 'value' = array[]

От
Tom Lane
Дата:
zach cruise <zachc1980@gmail.com> writes:
> but i need to select group_name where state_abbreviation is in
> group_array, something like:
> select group_name from group where 'CA' = any(group_array);

Yeah?  What's the problem?

regression=# create table g (group_name text, group_array text[]);
CREATE TABLE
regression=# insert into g values ('west', '{CA,WA}');
INSERT 0 1
regression=# insert into g values ('east', '{NY,MA}');
INSERT 0 1
regression=# select * from g where 'CA' = any(group_array);
 group_name | group_array
------------+-------------
 west       | {CA,WA}
(1 row)

This has worked since 7.4 or so ...

            regards, tom lane