0

mysqlのテーブルに2つの列があり、次のようになります。

 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クエリだけで行うことができますか、サーバー側で結果セットを繰り返してから、表示するために結果セットをフォーマットする必要があります。

4

2 に答える 2

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
于 2012-07-17T07:22:36.720 に答える
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 を使用していない場合は、類似の関数を確認する必要があります。

于 2012-07-14T15:01:33.890 に答える