From: | Keary Suska <hierophant(at)pcisys(dot)net> |
---|---|
To: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to fetch rows with multiple values |
Date: | 2006-01-20 15:32:47 |
Message-ID: | BFF650AF.255DB%hierophant@pcisys.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
on 1/20/06 6:19 AM, trepca(at)gmail(dot)com purportedly said:
> I have a table like this:
>
> CREATE TABLE customer_mapping
> (
> "Name" varchar(128) NOT NULL,
> "ID" int8 NOT NULL
> )
>
> Data looks something like this:
>
> "john" 1
> "peter" 1
> "test" 2
> "george" 3
>
> What I would like is to write a query where I can specify multiple names and
> get the IDs which have them.
>
> For now it seems the most efficient way is to use INTERSECT statement:
>
> SELECT "ID" from customer_mapping WHERE "Name"='john'
> INTERSECT
> SELECT "ID" from customer_mapping WHERE "Name"='peter'
>
> Although, I don't know how exactly to use ORDER, OFFSET and LIMIT in this
> case...
>
> Anyway, is there any better way of doing this? (I can't change the table
> structure.)
Maybe I'm a little thick this morning but can't you just do:
SELECT "ID" from customer_mapping WHERE "Name"='john' OR "Name"='peter' OR
"Name"='george' ORDER BY "ID" DESC
Result:
3
2
1
?
Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-01-20 15:35:21 | Re: Creation of tsearch2 index is very slow |
Previous Message | Tom Lane | 2006-01-20 15:23:11 | Re: autovacuum and temporary tables |