Re: How to fetch rows with multiple values

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"

In response to

Responses

Browse pgsql-general by date

  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