2013-03-03 96 views
-1

我需要編寫以下情況的查詢:MySQL:BETWEEN ..如何檢查範圍?

3列:「盒子」,「中」,「OUT」(盒子是一個整數,進出的日期)

我需要的東西以測試是否從「入」日期到「出」日期(這些日期之間的時段),已經給出了某個箱ID號。

我認爲做這樣的事情:

SELECT COUNT(*) FROM `tbl` WHERE `box` = '#' AND ***period*** BETWEEN 'date1' AND 'date2' 

(我知道BETWEEN不以這種方式工作(link),但它只是給你一個想法......)

=新的日期,我試着在數據庫中註冊

所以,如果查詢返回「0」我知道我可以在這些日期指定這個框#,如果不是我知道我可以」噸。我從上週開始就在這裏被困住了! X(

回答

0

我想你想要麼:

SELECT COUNT(*) FROM tbl WHERE box = '#' AND 
    `in` =< 'date1' AND out >= 'date1' 
    OR `in` =< 'date2' AND out >= 'date2' 

SELECT ... AND 
    period BETWEEN `in` AND out 
+0

您好感謝您的回答...我有一些問題與您的版本(例如: 「= <」 是「<=」然後我不得不使用一些括號) 這裏是我的解答: SELECT * FROM'tbl' WHERE'box' ='#'AND ('in'<'2013-03-20' AND'out'>'2013-03-20' OR'in'<'2013-03-21'AND'o >'2013-03-21') – Mark 2013-03-04 11:23:25