2015-06-15 75 views
0

我需要從一天內檢索MySQL中的數據,但我不知道兩行之間的間隔(例如,可能有一天的4行,例如一週的間隔)。僅在特定日期之前從一天開始選擇

比方說,我有:(以下不是代碼)

3 rows where date = 2015-06-15 
1 row where date = 2015-06-09 
4 rows where date = 2015-06-05 

我想與

[...] WHERE `date` < '2015-06-07' 

或只有一排檢索2015年6月5日所有4行從2015-06-09起用

[...] WHERE `date` < '2015-06-14' 

這隻用SQL可能嗎?

+0

你爲什麼不使用'WHERE日期('date')=「2015-06-05'' ? –

回答

1

如果我理解正確,您希望在給定日期之前收到一天的行數。我認爲這將是:

SELECT t.* 
FROM table t 
WHERE date = (SELECT MAX(t2.date) FROM table t2 WHERE t2.`date` < '2015-06-07') 
0

是的。您可以這樣做:

(SELECT * FROM `table` WHERE DATE(`date`) = '2015-06-15' LIMIT 0, 3) 
UNION 
(SELECT * FROM `table` WHERE DATE(`date`) = '2015-06-09' LIMIT 0, 1) 
UNION 
(SELECT * FROM `table` WHERE DATE(`date`) = '2015-06-09' LIMIT 0, 4) 
UNION 
SELECT * FROM `table` WHERE DATE(`date`) < '2015-06-07' 
UNION 
(SELECT * FROM `table` WHERE DATE(`date`) < '2015-06-14' LIMIT 0, 1) 
+1

這些是樣本DB行 - 正如我所說我不知道​​有多少行與我具有相同的日期。不管怎麼說,還是要謝謝你! (: –

1

我想你想是這樣的:

select * from table 
where date = (select max(date) from table where date < '2015-06-14') 
相關問題