Re: [SQL] problem with select - Mailing list pgsql-sql

From Tom Lane
Subject Re: [SQL] problem with select
Date
Msg-id 5585.936024234@sss.pgh.pa.us
Whole thread Raw
In response to problem with select  (Holm Tiffe <holm@freibergnet.de>)
Responses Re: [SQL] problem with select  (Holm Tiffe <holm@freibergnet.de>)
List pgsql-sql
Holm Tiffe <holm@freibergnet.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


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] Questions about vacuum analyze
Next
From: Herouth Maoz
Date:
Subject: Re: [SQL] Doubts in timespan