如何在 BaseColumns 中使用 _COUNT
How to use _COUNT in BaseColumns
我一直在阅读 Android 中的 BaseColumns
](https://developer.android.com/reference/android/provider/BaseColumns.html) 以帮助构建我的数据库模式。
我知道 _ID
是您必须自己创建的行的唯一标识符:
protected static final String SQL_CREATE = "CREATE TABLE " + TABLE_NAME + "( " +
_ID + " INTEGER PRIMARY KEY AUTOINCREMENT" + ...;
我还读到 _COUNT
用于指代 table 中的行数。
但是,当我尝试使用 _COUNT
时,出现错误。这是我尝试过的:
SQLiteDatabase db = TimetableDbHelper.getInstance(context).getReadableDatabase();
Cursor cursor = db.query(
SubjectsSchema.TABLE_NAME,
new String[] {SubjectsSchema._COUNT},
null, null, null, null, null);
cursor.moveToFirst();
int count = cursor.getInt(cursor.getColumnIndex(SubjectsSchema._COUNT));
cursor.close();
return count;
我不确定这是否是正确的使用方法,但我收到了这个错误:
android.database.sqlite.SQLiteException: no such column: _count (code 1): , while compiling: SELECT _count FROM subjects
我应该如何使用 _COUNT
?
在数据库中,_id
或 _count
没有什么特别之处。
您查询 return _id
或 _count
列,当 table 被定义为具有这样的列时,或者当查询显式计算它时。
Android 框架的许多对象都希望游标具有唯一的 _id
列,因此许多 table 定义了它。
在大多数地方,_count
预计不会出现,因此通常不会实现。如果确实需要,可以简单地用子查询计算,如下所示:
SELECT _id,
[other fields],
(SELECT COUNT(*) FROM MyTable) AS _count
FROM MyTable
WHERE ...
如果要查询自己的table尺码,则不需要使用_count
名称;您可以执行类似 SELECT COUNT(*) FROM subjects
的查询,或者更简单地使用 helper function 为您执行此操作。
我一直在阅读 Android 中的 BaseColumns
](https://developer.android.com/reference/android/provider/BaseColumns.html) 以帮助构建我的数据库模式。
我知道 _ID
是您必须自己创建的行的唯一标识符:
protected static final String SQL_CREATE = "CREATE TABLE " + TABLE_NAME + "( " +
_ID + " INTEGER PRIMARY KEY AUTOINCREMENT" + ...;
我还读到 _COUNT
用于指代 table 中的行数。
但是,当我尝试使用 _COUNT
时,出现错误。这是我尝试过的:
SQLiteDatabase db = TimetableDbHelper.getInstance(context).getReadableDatabase();
Cursor cursor = db.query(
SubjectsSchema.TABLE_NAME,
new String[] {SubjectsSchema._COUNT},
null, null, null, null, null);
cursor.moveToFirst();
int count = cursor.getInt(cursor.getColumnIndex(SubjectsSchema._COUNT));
cursor.close();
return count;
我不确定这是否是正确的使用方法,但我收到了这个错误:
android.database.sqlite.SQLiteException: no such column: _count (code 1): , while compiling: SELECT _count FROM subjects
我应该如何使用 _COUNT
?
在数据库中,_id
或 _count
没有什么特别之处。
您查询 return _id
或 _count
列,当 table 被定义为具有这样的列时,或者当查询显式计算它时。
Android 框架的许多对象都希望游标具有唯一的 _id
列,因此许多 table 定义了它。
在大多数地方,_count
预计不会出现,因此通常不会实现。如果确实需要,可以简单地用子查询计算,如下所示:
SELECT _id,
[other fields],
(SELECT COUNT(*) FROM MyTable) AS _count
FROM MyTable
WHERE ...
如果要查询自己的table尺码,则不需要使用_count
名称;您可以执行类似 SELECT COUNT(*) FROM subjects
的查询,或者更简单地使用 helper function 为您执行此操作。