2011-11-16 59 views
0

這裏我試圖從名稱爲lead的mysql表中獲取值。日期範圍存儲在兩個變量中。獲取來自mysql中同一字段的兩個狀態的值

開始日期存儲在$ from中,結束日期存儲在$ to中。

狀態是表中的一個字段。

我想要的日期範圍和狀態熱和狀態付費

我嘗試以下查詢,但預期其不工作取數據。請糾正我錯在哪裏。

select * from lead 
WHERE added_on >= '$from' AND added_on <= '$to' AND 
    status='Hot' AND status='Paid' 
+0

你說它沒有按預期工作。怎麼樣? –

回答

1

使用 「IN」 檢查多個可能的值:

SELECT * 
FROM `lead` 
WHERE 
    (`added_on` >= '$from' AND `added_on` <= '$to') 
    AND `status` IN ('Hot', 'Paid') 
+0

謝謝TiuTalk ..它工作:) –

3

狀態不能同時熱賣和支付。

狀態爲「熱」或「付費」。您可能希望該狀態爲「熱」或「付費」,而不是「熱」和「付費」。

select * from lead 
WHERE added_on >= '$from' AND added_on <= '$to' AND 
    (status='Hot' or status='Paid') 
+0

我覺得我需要新的眼鏡。我沒有看最後的條款。 –

+0

是啊......它不能是......它來自用戶的選擇框。用戶可以選擇Hot或Paid等。我希望獲取的行應該在日期範圍之間,並且它應該包含Hot或Paid任一狀態 –

+0

然後您需要將狀態作爲參數傳遞。所以,當堅持你的語法時,status ='$ status'。 –

1

我猜你可能是指這樣做:

SELECT * FROM lead 
WHERE added_on BETWEEN '$from' AND '$to' 
AND status IN ('Hot','Paid') 

想想你的標準被應用到每個記錄都是自己的。正如前面的海報正確地說「狀態不能很熱,並且同時支付」。

基本上,這應該返回'熱'或'付費'的所有記錄。

相關問題