如何在sqlite中检索结果

How to retrieve results in sqlite

我对数据库非常陌生,并试图根据区域提取值。我的 table 已有区域 (draft_region_name) 列。下面是我的代码

    SQLiteDatabase db = this.getWritableDatabase();

    String where = "";
    for (int i = 0; i < names.size(); i++) {
        where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";
        if (i != (names.size() - 1))
            where = where + " or ";
    }

    Cursor cursor = db.query(TABLE_DRAFT_TABLE, null, where, null, null, null, null);

我得到了这个期望

android.database.sqlite.SQLiteException: no such column: AHMEDABAD (code 1): , while compiling: SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD

您可能忘记了 sqlite 字符串的 ' 也试试这个,您的 sqlite 应该以 ';' 结尾不应该吗?:

for (int i = 0; i < names.size(); i++) {
    where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";
    if (i != (names.size() - 1))
        where = where + " or ";
}
where = where + ";"

where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";

编译,因为异常在这个语句中说:

SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD

这是错误的,如果要检查字符串,则必须将搜索关键字设置为引号。所以这将是正确的查询:

SELECT * FROM DraftTable WHERE draft_region_name = 'AHMEDABAD'

要解决它,只需将您的代码包装在 assemble 您的 where 子句中,如下所示:

where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";