Re: [SQL] problem with select

From: Holm Tiffe <holm(at)freibergnet(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: holm(at)freibergnet(dot)de, pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] problem with select
Date: 1999-08-31 06:29:20
Message-ID: 19990831082920.A23046@pegasus.freibergnet.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Tom Lane wrote:

> 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

Hm, clever.

It is almost working, my database isn't that big that memory becomes a
problem; the machine has 512MB.

But why is nothing found if one value of a column contains NULL ?

select distinct code,category from products where (code || '|' || category
|| '|' || comment || '|' || description || '|' || desc_de) ~* 'kde';
code|category
------+--------
06-001|KDE
(1 row)

shop=> update products set comment = Null where code ='06-001';
UPDATE 1
shop=> select (comment || '|' || code) from products where code ~* '06-001';
?column?
--------

(1 row)

Holm
--
FreibergNet Systemhaus GbR Holm Tiffe * Administration, Development
Systemhaus für Daten- und Netzwerktechnik phone +49 3731 781279
Unternehmensgruppe Liebscher & Partner fax +49 3731 781377
D-09599 Freiberg * Am St. Niclas Schacht 13 http://www.freibergnet.de/

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message José Soares 1999-08-31 12:23:51 Re: [SQL] problem with select
Previous Message Mike Field 1999-08-30 21:02:18 Installation Prob