Re: Query optimization to select rows instead of too many or conditions
От | Alban Hertroys |
---|---|
Тема | Re: Query optimization to select rows instead of too many or conditions |
Дата | |
Msg-id | B922A04F-27D4-475F-90F7-5126D32908A8@gmail.com обсуждение исходный текст |
Ответ на | Query optimization to select rows instead of too many or conditions (Arup Rakshit <aruprakshit@rocketmail.com>) |
Ответы |
Re: Query optimization to select rows instead of too many or conditions
|
Список | pgsql-general |
> On 21 Feb 2015, at 9:34, Arup Rakshit <aruprakshit@rocketmail.com> wrote: > > Select * from Emp > where (attr1 = val11 and attr2 = val12 and attr3 = val13) or (attr1 = val14and attr2 = val15 and attr3 = val16); > > Now suppose I got (x1, x2, x3) and (y1, y2, y3). Then I need to rewrite my query as : > > Select * from Emp > where (attr1 = val11 and attr2 = val12 and attr3 = val13) or (attr1 = val14 and attr2 = val15 and attr3 = val16) or > (attr1 = x1 and attr2 = x2 and attr3 = x3) or (attr1 = y1 and attr2 = y2 and attr3 = y3); > > So for each new set I need to add one more `or` conditions. It seems wired. > > Any better way to get it done ? If the number of attributes to compare is always the same, you can write: select * from Emp where (attr1, attr2, attr3) in ((val11, val12, val13), (val14, val15, val16), (x1, x2, x3), (y1, y2, y3)); Is that the sort of thing you're after? Alban Hertroys -- If you can't see the forest for the trees, cut the trees and you'll find there is no forest.
В списке pgsql-general по дате отправления: