1

ORMLITEでmaxを使用して、ormliteテーブルの最新のレコードを取得する必要があります。select max(MODIFIED)FROM TABLE;

useridがidであるdatemodifiedの最大値を持つ単一のレコードを取得したい。特定のユーザーIDについて、日付の最大値を持つレコードを検索したい、つまり特定のユーザーの最新のエントリを検索したい

4

1 に答える 1

6

はっきりとはわかりませんが、ORMLiteMODIFIEDを使用して、フィールドが最大値に等しいオブジェクトをクエリする方法を知りたいと思います。2つのクエリなしでSQLでこれを実行できるかどうかはわかりません。最大値を取得するために生のクエリを実行してから、別のクエリを実行する必要があると思います。

バージョン4.42でORMLiteに追加queryRawValue(...)したので、次のことができます。

long max = fooDao.queryRawValue(
    "select max(modified) from foo where userid = ?", id);
// now perform a second query to get the max row
Foo foo = fooDao.queryBuilder().where().eq("modified", max).queryForFirst();

手であなたはするでしょう:

GenericRawResults<String[]> rawResults =
    fooDao.queryRaw("select max(modified) from foo where userid = ?", id);
// there should be one result
long max = Long.parseLong(rawResults.getResults().get(0)[0]);
// now perform a second query to get the max row
Foo foo = fooDao.queryBuilder().where().eq("modified", max).queryForFirst();
于 2012-08-30T12:30:58.023 に答える