Thread: Conditional OR
View Single Post

   
  #1 (permalink)  
Old 04-24-2008, 06:08 PM
worldcyclist@gmail.com
 
Posts: n/a
Default Conditional OR

I have a table with 4 fields, Name, Status, Start, End. Like below....

Name | Status | Start | End
Fred | InProgress | 05-31-2008 | 06-30-2008
Wilma | InProgress | 05-31-2008 | 06-30-2008
Barney | Live | 05-31-2008 | 06-30-2008
Betty | Ordered | 05-31-2008 | 06-30-2008
Dino | Dead | 05-31-2008 | 06-30-2008

etc... etc...

What I need to do is retrieve the data that matches a status of
InProgress, Live and Ordered.

This works ok of course..
SELECT * FROM table
WHERE Status = 'Live'
OR Status = 'Ordered'
OR Status = 'InProgress'

What I need to do is to modify the InProgress to only return if the
Start is >=NOW() and End is >= Start

I'm on MySQL 4. I have tried..

SELECT * FROM table
WHERE Status = 'Live'
OR Status = 'Ordered'
OR IF(Status = 'InProgress' && Start >= NOW() && End >= Start)

This croaks on me. Any ideas where this query might be wrong?
Many thanks in advance!
JC
Reply With Quote