我有一张表,其中某个特定列的值重复了多次。 我想计算它出现的次数。
假设数据库在表中重复了5次“Select”列。 我怎么算呢?
这是我正在使用的代码
public String getCountSelect() {
String count = "";
String selectQuery = "SELECT COUNT ( " + KEY_DEALER_NAME + " ) FROM "
+ TABLE_DEALER + " WHERE " + KEY_DEALER_NAME + " = 'Select'";
Log.e("", selectQuery);
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Log.e("", cursor.getString(cursor
.getColumnIndex(KEY_DEALER_NAME)));
} while (cursor.moveToNext());
}
db.close();
return count;
}
答案 0 :(得分:4)
试试这种方式
String selectQuery = "SELECT " + KEY_DEALER_NAME + " FROM "
+ TABLE_DEALER + " WHERE " + KEY_DEALER_NAME + " = 'Select'";
Cursor cursor = db.rawQuery(selectQuery, null);
int total_count=cursor.getCount();
光标 .getCount()
方法返回受影响的总行数。
答案 1 :(得分:1)
返回列的名称是您在SELECT子句中编写的名称,即COUNT( DealerName )
。
但这并不重要,因为你可以使用列索引,即你知道这是第0列。
无论如何,使用COUNT的查询返回单个值,因此您可以使用DatabaseUtils帮助函数来简化代码。
最后,COUNT(*)
更有效率:
public long getCountSelect() {
SQLiteDatabase db = getReadableDatabase();
try {
String selectQuery =
"SELECT COUNT(*)" +
" FROM " + TABLE_DEALER +
" WHERE " + KEY_DEALER_NAME + " = 'Select'";
return DatabaseUtils.longForQuery(db, selectQuery, null);
} finally {
db.close();
}
}
答案 2 :(得分:0)
触发查询并返回光标。并在光标上执行.getCount()函数,它为您提供查询的总值。
<强>代码: - 强>
cursor.getCount();