0

こんにちはmax(columnName)、ORMLite で order by を使用する必要があります。SQL クエリがありますが、このクエリがどのように使用されるかを知る必要があります。これは私のクエリです:

SELECT  * FROM table where place = 'somePlace' group by name
    order by MAX (statusDate)

statusDate列には日付が"yyyy-dd-mm"フォーマットで含まれています。私が得た結果は、recentDates のリストです。

4

3 に答える 3

2

クエリ ビルダーを使用し、関数 where と orderBy を使用して先行する

QueryBuilder<YourObject, Integer> q = yourDaoObject.queryBuilder();
Where<YourObject, Integer> wh = q.where();
wh.eq("place", "some_place");
q.orderBy("statusDate", false);
List<YourListOfObects> yourList = q.query();

ただし、その前に、日付を保存する代わりに long を保存する必要がありますhttps://stackoverflow.com/a/6993420/2122876

于 2013-09-25T14:09:05.217 に答える
0

私はこのようなことをしました。最初の行で独自のクエリ ビルダーを作成してください。

QueryBuilder<MyRowObject, Integer> queryBuiler = "Get Query builder" //getDaoXXX().queryBuilder();

MyRowObject firstLatestRow = queryBuiler.orderBy("dateColoumn", false).queryForFirst();

お役に立てれば

于 2015-01-06T20:09:05.840 に答える
0

日付が異なる同じ名前があり、最近の日付だけが必要です。

Table最大で要素を取得しようとしている場合statusDateは、1 の制限で降順を実行する必要があります。次のようなものです。

QueryBuilder<Foo, Integer> qb = fooDao.queryBuilder();
qb.where().eq("place", "some_place");
qb.orderBy("sttusDate", false); // descending sort
// get the top one result
qb.limit(1);
Foo result = qb.queryForFirst();
于 2013-09-26T13:25:23.813 に答える