Re: Regular expression and array

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: Regular expression and array
Дата
Msg-id b42b73150905270658i1d03f8d5m88414723e0a7e21b@mail.gmail.com
обсуждение исходный текст
Ответ на Regular expression and array  (Nick <nboutelier@gmail.com>)
Список pgsql-general
On Tue, May 26, 2009 at 11:04 PM, Nick <nboutelier@gmail.com> wrote:
> I wont go into details about why im using this field as an array but
> how would I select all the rows that have the first name 'Tom' out of
> the 'names' field?
>
> CREATE TABLE test (
>    id integer,
>    names character varying[]
> );
> INSERT INTO test VALUES (1, '{"''Josh Berkus''","''Peter
> Eisentraut''","''Marc Fournier''"}');
> INSERT INTO test VALUES (2, '{"''Tom Lane''","''Bruce
> Momjian''","''Dave Page''"}');
> INSERT INTO test VALUES (3, '{"''Jan Wieck''","''Oleg
> Bartunov''","''Joe Conway''"}');

couple of ways:
select * from test where 'Jan Wieck' = any(names);
on 8.4:
select * from (select unnest(names) as n from test) q where n = 'Jan Wieck';

while the second approach seems more complex, it's a more general type
of thing that can be used to attack all kinds of problems.   Previous
to 8.4 you have to write your own unnest (it's not hard) or use the
built in information_schema._pg_expandarray();

merlin

В списке pgsql-general по дате отправления:

Предыдущее
От: Csaba Nagy
Дата:
Сообщение: Re: a strange error
Следующее
От: Merlin Moncure
Дата:
Сообщение: Re: composite type and domain