...where 'value' = array[]

Started by zach cruisealmost 17 years ago2 messagesgeneral
Jump to latest
#1zach cruise
zachc1980@gmail.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: zach cruise (#1)
Re: ...where 'value' = array[]

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