Re: [SQL] problem with select
От | Holm Tiffe |
---|---|
Тема | Re: [SQL] problem with select |
Дата | |
Msg-id | 19990831082920.A23046@pegasus.freibergnet.de обсуждение исходный текст |
Ответ на | Re: [SQL] problem with select (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [SQL] problem with select
|
Список | pgsql-sql |
Tom Lane wrote: > 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 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/
В списке pgsql-sql по дате отправления: