gpt4 book ai didi

android - 如何在 BaseColumns 中使用 _COUNT

转载 作者:行者123 更新时间:2023-11-29 01:17:00 26 4
gpt4 key购买 nike

我一直在阅读 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 用于指代表格中的行数。

但是,当我尝试使用 _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 没有什么特别之处。

当表被定义为具有这样的列时,或者当查询显式计算它时,您的查询返回 _id_count 列。

Android 框架的许多对象都希望游标具有唯一的 _id 列,因此许多表都定义了它。

在大多数地方,_count 预计不会出现,因此通常不会实现。如果确实需要,可以简单地使用子查询来计算,如下所示:

SELECT _id,
[other fields],
(SELECT COUNT(*) FROM MyTable) AS _count
FROM MyTable
WHERE ...

如果要查询自己表的大小,可以不用_count名称;您可以执行类似 SELECT COUNT(*) FROM subjects 的查询,或者更简单地使用 helper function就是为你做的。

关于android - 如何在 BaseColumns 中使用 _COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38906158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com