Ormlite orderBy max(ColumnName)

时间:2013-09-25 13:29:16

标签: android sqlite ormlite query-builder

您好我需要在ORMLite中使用max(columnName)的订单。我有SQL查询,但我需要知道如何使用此查询。这是我的问题:

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

statusDate列包含"yyyy-dd-mm"格式的日期。我得到的结果是带有recentDates的列表。

3 个答案:

答案 0 :(得分:2)

使用查询构建器,并在其中和orderBy执行preoceed

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();

但在此之前,您应该存储一长片,而不是存储您的日期https://stackoverflow.com/a/6993420/2122876

答案 1 :(得分: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();

答案 2 :(得分:0)

我做了这样的事。请在第一行创建自己的查询构建器。

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

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

希望这有帮助