2012-07-14 70 views
0

我表中有2列在MySQL看起來有時像下面,顯示數據

title timestamp 
-------------------- 
test1  1/7/2012 
test2  1/7/2012 
test3  1/7/2012 
test4  2/7/2012 
test5  3/7/2012. 

我正在尋找的結果是一樣的東西,

**1/7/2012** 
    test1 
    test3 
**2/7/2012** 
    test4 
**3/7/2012** 
    test5 

誰能幫他在這裏可以用MySQL查詢來完成,或者我需要在服務器端迭代結果集,然後格式化結果集進行顯示。

+2

這是一個顯示問題,並沒有真正與查詢機制有任何關係。所以是的,迭代結果集並對結果進行格式化 – 2012-07-14 14:53:10

+0

感謝Marc,我正在研究服務器端代碼以獲得此結果。只是想確保我的工作方向正確。 – 2012-07-14 16:56:59

回答

0

您可以使用類似這樣的查詢:

select title,timestamp,str_to_date(timestamp, '%d/%m/%Y') as date from table_name order by date,title; 

遍歷結果集,打印,只有當它改變了時間戳。

str_to_date是一個MySQL函數,它將字符串轉換爲日期,用於排序。如果你不使用MySQL,你應該檢查一個類似的功能。

+0

我覺得它不是關於排序或格式化,我得到的數據與時間戳desc已經是的,是的,我得到的結果集後我的服務器端代碼的格式日期,我需要做的就是顯示該日期的所有標題,然後移動到下一個日期,顯示該日期的所有標題等。 – 2012-07-14 16:59:24

+0

我想我仍然需要一些幫助。我無法超越從數據庫中獲取結果集。可以從服務器端代碼中獲取某些想法,我正在使用java.Appreciate一些高級指導。 – 2012-07-17 00:58:04

0

如果我理解正確,您想,代碼看起來應該是這樣的:

int itemsInPage = 100; //Number of item to display in page 
int currentPage = 1; //Index of current page, starting from 1 

PreparedStatement ps = con.prepareStatement("select title,timestamp,str_to_date(timestamp,'%d/%m/%Y') as date from table_name order by date,title limit " + ((currentPage - 1) * itemsInPage) + ", " + itemsInPage); 

ResultSet rs = ps.executeQuery(); 

String prevTimestamp = null; 

while(rs.next()) { 
    if (prevTimestamp == null || !prevTimestamp.equals(rs.getString(2))) { 
     System.out.println("*** "+rs.getString(1)+" ***"); 
    } 
    System.out.println(rs.getString(1)); 
    prevTimestamp = rs.getString(2); 
} 

如果你是在一個jsp編碼,你應該使用

out.print(...); 

,而不是

System.out.println 
+0

讓我試着在這個問題上回復你。我有數以千計的數據需要在上面的模式中取出並格式化,如果記錄超過100個,我需要根據這種模式進行分頁。使用JSP,但我沒有在JSP中做任何數據訪問,它只是一個視圖,我有模型/ servlet執行數據庫調用,然後將數據寫入請求範圍。但我想我會看到你想傳達的內容。 – 2012-07-17 15:04:31

+0

沒有它的不工作。你認爲遊標可以幫助here.Get第一行的時間戳列的值,存儲在變量a中,將光標移動到下一行時間戳,獲取值並存儲變量b.Compare a和a b,如果它們是相同的,則保持循環直到它們不相等。如果它們相等,則停止循環並在起始行和結束行之間寫入所有標題。任何想法如何通過JDBC完成 – 2012-07-18 00:10:55

+0

如果要分頁結果集您可以使用sql LIMIT語句:http://www.java2s.com/Code/SQL/Select-Clause/UseLIMITinSELECT.htm我編輯了代碼以向查詢添加限制語句。 – user1498339 2012-07-18 12:42:36