2014-02-20 59 views
0

表客戶的MySQL變量然後顯示結果+具體結果

ID  | Name | start_Date   | Future 
1   John  20-02-2014 15:00:00  0 
2   Maria  20-02-2014 15:00:00  0 
3   Stack  21-02-2014 15:00:00  1 
4   Google 21-02-2014 15:00:00  0 

目前,我的查詢看起來是這樣的:

SELECT * FROM clients 

顯然,這將讓所有的客戶,但我想顯示的客戶根據Future變量。當設置Future變量時,客戶端只能從start_Date進一步顯示。

如果我改變我的查詢到這一點:

SELECT * 
FROM clients 
WHERE (NOW() >= start_Date OR start_Date IS NULL 
     OR start_Date = '0000-00-00 00:00:00') 

這將讓我:

ID  | Name | start_Date   | Future 
1   John  20-02-2014 15:00:00  0 
2   Maria  20-02-2014 15:00:00  0 

但我希望的輸出是:

ID  | Name | start_Date   | Future 
1   John  20-02-2014 15:00:00  0 
2   Maria  20-02-2014 15:00:00  0 
4   Google 21-02-2014 15:00:00  0 

我不想顯示

3   Stack  21-02-2014 15:00:00  1 

,因爲變量Future設置爲1,它只能在明天顯示(21-02-2014 15:00:00)。 所以,最後,我想出了這個沒有成功:

SELECT * 
FROM clients 
WHERE CASE WHEN Future = 1 THEN (NOW() >= start_Date OR start_Date IS NULL 
     OR start_Date = '0000-00-00 00:00:00') END 

回答

2

試試這個:

SELECT * 
FROM clients 
WHERE future = 0 
OR (future = 1 
    AND (NOW() >= start_Date 
     OR start_Date IS NULL 
     OR start_Date = '0000-00-00 00:00:00')) 
+0

這一個解決我的問題我剛要添加:'WHERE future = 0或future future IS NULL OR(future = 1 ...)'。我會在5分鐘內接受答案。 – user3243925

0

爲什麼不利用這個

SELECT * 
FROM clients 
WHERE future = 0