在 SQLite 中使用“_id”从表中选择

Posted

技术标签:

【中文标题】在 SQLite 中使用“_id”从表中选择【英文标题】:Select from table using '_id' in SQLite 【发布时间】:2012-12-27 20:16:55 【问题描述】:

我想使用 id 作为选择从我的 sqlite 数据库中选择一个特定的行。 在我的数据库中,id 称为 _id。我想使用以下函数,参数是我要选择并保存到游标中的行的 id。 DATABASE_TABLE_Bewirtschafter 是我的表的名称。

public Cursor createBewirtschafterIDCursor(int id) 
        return db.query(DATABASE_TABLE_Bewirtschafter, null, "_id = " + id,
                null, null, null, null);

不幸的是,这不起作用,我得到一个空指针异常。 这有效:

public Cursor createBewirtschafterListViewCursor(String like) 
    return db.query(DATABASE_TABLE_Bewirtschafter, null, "gewName LIKE '%" + like + "%'",
            null, null, null, null);

【问题讨论】:

如果对您有帮助,请不要忘记将答案标记为已接受。 【参考方案1】:

您的db 变量设置为什么?从您展示的代码来看,我猜这几乎就是导致NullPointerException 被抛出的原因。

【讨论】:

db = context.openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null);【参考方案2】:

是的,因为您在查询中的列参数中传递了 null

db.query(DATABASE_TABLE_Bewirtschafter, null, "_id = " + id,
                null, null, null, null);

而你应该传递一个字符串数组有不同列的名称.. 参考请检查

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

【讨论】:

谢谢。在我的编辑中,您可以看到我的其他语句运行良好,并且列也为空。为什么? 发现我的失败。我忘记打开数据库了。

以上是关于在 SQLite 中使用“_id”从表中选择的主要内容,如果未能解决你的问题,请参考以下文章

从表中选择记录,其中表名来自另一个表

SQL 如何使用 LEFT JOIN 从表中选择单个值,在 Google Datastudio 中

SQL 从表中选择并获取表名

SQL 从表中选择条目,其中属性等于参数,否则选择 * 条目

使用嵌套查询从表列表/多个表中选择 - MS SQL

SQL Server 使用 in 子句从表中选择字符串