2012-06-22 62 views
0

我有點不確定如何爲MySQL數據庫構建以下查詢。如何構建條件SQL查詢

我的表有兩個int字段,分別爲startDateendDate,它們包含UNIX時間戳。 endDate可以是NULL,這意味着沒有結束日期。

我想獲取當前時間戳落入範圍內的所有記錄。

在這種endDate有一個值的情況下,我可以這樣做:

SELECT * FROM table WHERE startDate < NOW() AND endDate > NOW()

,並在endDate是空的情況下,我可以這樣做:

SELECT * FROM table WHERE的startDate < NOW()

我的問題是,我如何將上述兩個查詢合併爲一個單一的條件查詢?

回答

2

簡單:

SELECT * FROM table WHERE startDate < NOW() AND 
          (endDate IS NULL OR endDate > NOW()) 
+0

哇哦....這確實是容易的。哈哈,我正在推翻它。謝謝。 – xbonez

+0

不確定'&&'和'||' - 他們是否跨平臺工作?我傾向於推薦使用'AND'和'OR',imo。 – halfer

+0

@halfer:好點。更改爲「AND」和「OR」。 – Jon

3
SELECT * FROM table 
WHERE startDate < NOW() AND (endDate IS NULL OR endDate > NOW()) 
+0

謝謝。比我想象的要容易得多。 – xbonez