android内容提供者总和查询

Rah*_*hul 6 android android-contentprovider

可以getContentResolver().query()在我想要的时候使用sum(column)吗?

要么

我是否必须对db句柄进行原始查询?

Tom*_*ran 6

提供列数组时ContentResolver.query,使用sum()函数包装列名

String[] columns = new String[] { "sum(" + columnName + ")" };

Cursor cursor = getContentResolver().query(
    content_uri,
    columns,
    selection,
    selectionArgs,
    sort
);

cursor.moveToFirst();

int columnSum = cursor.getInt(0);
Run Code Online (Sandbox Code Playgroud)


Rah*_*hul 4

好吧,看来使用它是不可能的getContentResolver().query()。我必须获得数据库连接并进行rawQuery.

 ContentProviderClient client =  getContentResolver().acquireContentProviderClient(AUTHORITY);
 SQLiteDatabase dbHandle= ((MyContentProvider)client.getLocalContentProvider()).getDbHandle();
 Cursor cursor = dbHandle.rawQuery("SELECT sum("+COLUM_NNAME+") FROM "+TABLE_NAME +" WHERE "+WHERE_CLAUSE , null);
 cursor.moveToFirst();
 int cnt =  cursor.getInt(0);
 cursor.close();
 cursor.deactivate();
 client.release();
Run Code Online (Sandbox Code Playgroud)