Re: [SQL] problem with select

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: holm(at)freibergnet(dot)de
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] problem with select
Date: 1999-08-30 14:43:54
Message-ID: 5585.936024234@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Holm Tiffe <holm(at)freibergnet(dot)de> writes:
> What I try to find is a solution for a search in this table like this:

> select distinct code,category from products where code ~* 'abc' or
> category ~* 'abc' or manufacturer ~* 'abc' or description ~* 'abc'
> or comment ~* 'abc' order by code;

> So far so good, but I have the problem that I have the value 'abc'
> only one times !

How about

select distinct code,category from products where
(code || category || manufacturer || ...) ~* 'abc';

Actually you'd probably want to also concatenate some separator markers,
maybe (code || '|' || category || ...), so that you didn't get bogus
matches across fields, like where code ends in 'a' and category starts
with 'bc'.

Note that this select will be a bit of a memory hog because
text-slinging is very wasteful of space in 6.5 (the intermediate results
from the concatenate operators don't get freed till end of transaction).
So it might not be workable if you have a large database. I hope to see
that fixed for 6.6 or 6.7.

regards, tom lane

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Herouth Maoz 1999-08-30 15:19:12 Re: [SQL] Doubts in timespan
Previous Message Tom Lane 1999-08-30 14:20:18 Re: [SQL] Questions about vacuum analyze