1

我需要在 ORMLITE 中使用 max 来检索 ormlite 表中的最新记录select max(MODIFIED)FROM TABLE;

我想获得一条记录,该记录具有 datemodified 的最大值,其中 userid 为 id;对于特定的用户 ID,我想查找日期最大值的记录,即查找特定用户的最新条目

4

1 回答 1

6

不太清楚,但我假设您想知道如何使用ORMLiteMODIFIED查询字段等于最大值的对象。我不确定您是否可以在没有两个查询的情况下在 SQL 中执行此操作。我认为你将不得不做一个原始查询来获得最大值,然后再做一个查询。

我在 4.42 版中添加queryRawValue(...)ORMLite,所以你可以这样做:

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 回答