From: | "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com> |
---|---|
To: | holm(at)freibergnet(dot)de, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-sql(at)postgreSQL(dot)org |
Subject: | RE: [SQL] problem with select |
Date: | 1999-08-31 16:23:41 |
Message-ID: | D05EF808F2DFD211AE4A00105AA1B5D24E8747@cpsmail |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Why? Because:
NULL <any operator> <any value including NULL> = NULL
Therefore:
(comment || code) = NULL, because comment is NULL
You must remember that NULL is not the same as an empty string;
NULL = undefined.
Hope this helps,
DEJ
> -----Original Message-----
> From: Holm Tiffe [SMTP:holm(at)freibergnet(dot)de]
> Sent: Tuesday, August 31, 1999 1:29 AM
> To: Tom Lane
> Cc: holm(at)freibergnet(dot)de; pgsql-sql(at)postgreSQL(dot)org
> Subject: Re: [SQL] problem with select
>
> 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/
>
>
> ************
From | Date | Subject | |
---|---|---|---|
Next Message | Nisai Wanakule | 1999-08-31 18:28:12 | Help pg_dump: failed sanity check |
Previous Message | Tom Lane | 1999-08-31 14:31:23 | Re: [SQL] Installation Prob |