我有一個表中有很多行的3列。對於特定的行,我必須獲取列的最後一個值。如何獲取最後一個日期是11/10/2013。我有一個表中的數據庫,我想要得到列的最後一個值
uid date book_id
1 18/8/2013 41
to
11/10/2013
我有一個表中有很多行的3列。對於特定的行,我必須獲取列的最後一個值。如何獲取最後一個日期是11/10/2013。我有一個表中的數據庫,我想要得到列的最後一個值
uid date book_id
1 18/8/2013 41
to
11/10/2013
如果你想爲一個給定的book_id的最後日期,你可以寫類似
SELECT MAX(date) FROM myTable WHERE book_id = 41
這應該讓你去。
SELECT * FROM table_name ORDER BY STR_TO_DATE(date,'%e/%c/%Y') DESC LIMIT 1;
-- ^- the most recent date is first
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date
你給的查詢正在工作,但它的概率是返回數據30/09/2013,但最後的值是11/10/2013 @alasjo – gokul
編輯我的答案,以更好地適合您的日期格式。但是,從長遠來看,@sherlock爲您提供了更好的解決方案。 – Alasjo
謝謝你的回答仍然只顯示01/10/2013。但ans是$ end_date是從數據庫獲取日期。 $ date_frag = explode(「 - 」,$ end_date); $ rev_date = $ date_frag [2]。「 - 」。$ date_frag [1]。「 - 」。$ date_frag [0]; 當我扭轉它開始採取從年,月和日期現在顯示爲11/10/2013 – gokul
這就是你將如何在PHP中使用MySQL的
$Query = mysql_query(SELECT date FROM table_name ORDER BY date DESC LIMIT 1);
$Date = mysql_result($Query,0,'date');
$Date = explode('to',$Date);
$Last_Date = $Date[1];
做到這一點
我希望我會知道爲什麼有人投下了這個答案,因爲代碼是肯定工作 – user2801966
感謝您的所有答案。 答案是 $ end_date是從數據庫中獲取日期。 $ date_frag = explode(「 - 」,$ end_date); $ rev_date = $ date_frag [2]。「 - 」。$ date_frag [1]。「 - 」。$ date_frag [0]; 當我扭轉它開始採取從年,月和在最後的日期。 – gokul
問題是,您將日期存儲爲字符串,而不是日期。 11/10/2013
不是有效的日期,如果不使用DATE_FORMAT或其他功能,您將無法正確排序。鑑於MySQL對日期的良好本機處理,這太過分了。另外,如果要存儲2個日期,請使用2列(例如,date_start
和date_end
)。切勿將它們合併爲1.
備份您的數據,將列的類型更改爲DATE或DATETIME並使用ORDER BY date_field DESC LIMIT 1
。
我不確定這是你需要的......我首先明白你在你的表中有幾行,包含'book_id = 41'的一些日期。後來我明白了,對於這個特定的行,「日期」字段具有「2013年8月8日至2013年11月10日」。如果我的第二個假設是好的,那麼我的建議是不正確的。 – MTranchant