Re: Selecting rows by content of array type field

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Selecting rows by content of array type field
Date: 2009-08-13 17:36:55
Message-ID: 20090813173655.GI5407@samason.me.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Aug 13, 2009 at 04:02:14PM +0300, mito wrote:
> I have table like this:
> CREATE TABLE messages {
> recepients varchar[],
> };
>
> Want to select by content co array type field recepients:
> SELECT * FROM messages where 'john' ANY (recepients);

not sure if it went missing in the email, but you want an equals in
there, i.e:

SELECT * FROM messages WHERE 'john' = ANY(recepients);

> If i want to create index on recepients field, is it enough to
> CREATE INDEX messages_recepients_index ON messages (recepients);
> or is there other way how to index this? Expressions?

I think you want a GIN index; have a look at:

http://www.postgresql.org/docs/current/static/indexes.html

--
Sam http://samason.me.uk/

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-08-13 17:53:18 Re: Simulate count result are distinct between 8.3 and 8.4
Previous Message Tom Lane 2009-08-13 17:36:45 Re: Encoding question when dumping/restoring databases for upgrade