At least for between, I read that pgSQL rewrites it to a (a<x) AND (x<b). And my experience shows that IN is translated into a series of ORs. I may be wrong
> -----Original Message----- > From: Keith Worthington [mailto:[EMAIL PROTECTED] > Sent: Mittwoch, 16. Februar 2005 17:36 > To: PostgreSQL SQL > Cc: Sean Davis; Scott Marlowe > Subject: Re: [SQL] More efficient OR > > > > > Hi All, > > > > > > In several of my SQL statements I have to use a WHERE clause > > > that contains mutiple ORs. i.e. > > > > > > WHERE column1 = 'A' OR > > > column1 = 'B' OR > > > column1 = 'C' > > > > > > Is there a more efficient SQL statement that accomplishes the > > > same limiting functionality? > > > > > > Kind Regards, > > > Keith > > > > > > > Scott wrote: > > The in() construct is (nowadays) basically the same as > > ORing multiple columns; > > > > where column1 in ('A','B','C') > > > > > > Sean Davis wrote > > Could 'in' or 'between' do what you want? I know that using 'in' > > is equivalent to what you have below. Could 'between' be more > > efficient--you could do explain analyze on various options to see > > what the actual plan would be. > > > > Sean > > Thanks Scott and Sean for the post. > > It sounds like IN will save some typing and code space but > not decrease the > execution time. > > BETWEEN won't work for my real life query because the > limiting values are > quite disparate. > > Kind Regards, > Keith > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq > ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly