因此,我很难让这个查询与GreenDao一起工作,我的问题是查询的开始,这个查询(使用rawquery)在where子句之后开始。
使用GreenDao甚至可以执行此查询,还是必须使用标准的SQL查询访问数据库而不使用GreenDao?
select count (distinct VISIBLE_PAGE_ID) from HOME_ITEM2 where IS_VISIBLE=1 and IS_ACTIVE = 1发布于 2015-11-21 19:18:04
因此,我只使用了SQL就可以做到这一点,不知道是否有任何BuildIn方法可以做同样的事情:
String query = "SELECT COUNT (DISTINCT "
+ HomeItem2Dao.Properties.VisiblePageId.columnName+
") from "
+ HomeItem2Dao.TABLENAME
+ " where "
+ HomeItem2Dao.Properties.IsVisible.columnName + " = 1 and "
+ HomeItem2Dao.Properties.IsActive.columnName + " = 1";
Integer count = 0;
Cursor cursor =
MainApplication.getInstance().getDaoSession().getDatabase().rawQuery(
query, null
);
if(cursor.moveToFirst()){
count = cursor.getInt(0);
}
cursor.close();发布于 2018-10-05 09:58:33
您可以使用GreenDao的CountQuery类来执行count(*)查询。在使用QueryBuilder时,使用buildCount()方法而不是build()方法。下面的例子。
HomeItem2 homeItem2Dao = ((Application) context.getApplicationContext())
.getDaoSession().getHomeItem2Dao();
QueryBuilder<HomeItem2> queryBuilder =
homeItem2Dao.queryBuilder().where(
HomeItem2Dao.Properties.IsVisible.eq(true),
HomeItem2Dao.Properties.IsActive.eq(true));
return queryBuilder.buildCount().count();发布于 2020-04-29 00:20:12
我创建了一个带有库的拉请求,添加了一个函数来构建一个具有不同列表达式的计数查询。
https://stackoverflow.com/questions/33847357
复制相似问题