2015-12-02 56 views
1

我有一個表得到最近期的具體行迄今爲止在MySQL

id |value |date 
------------------- 
1 |2.8 |28-3-14 
2 |2.9 |28-7-14 
3 |3.9 |20-1-14 

在這個表,我需要得到的21-3-14值。 但是如果值或對象不存在,那麼查詢將直接得到20-1-14的輸出,而不是逐個搜索對象,減去日期減1天。 如果有人知道這個,請給我建議。

回答

0

你只需要按日期排序

SELECT value FROM table WHERE date<='21-3-14' ORDER BY date DESC LIMIT 1; 

根據你的表應該打印:

2.8 

假設日期21-3-14是不存在,它應該打印:

3.9 
0

試試這個,

SELECT 
     * 
FROM 
     <tablename> 
WHERE 
     STR_TO_DATE(`date`,'%d-%m-%y') <= STR_TO_DATE('YOUR_DATE','%d-%m-%y') 
ORDER BY 
     `date` DESC < LIMIT 1 > 

建議存儲日期在日期格式即< YYYY-MM-DD>

可參考,

PHP mysql insert date format