按字符串在Android SQlite数据库中查找记录

时间:2013-07-22 11:55:18

标签: android sqlite where-clause

public boolean findContact(String phoneNumber) {
        boolean exists = false;
        Cursor mCursor = mDb.rawQuery("SELECT * FROM " + SQLITE_TABLE + " WHERE " + KEY_PHONENUMBER + " = " + phoneNumber, null);
        if (mCursor.moveToFirst()) {
            exists = true;
        } else exists = false;
        return exists;
}

如果存在具有电话号码的行,则返回true(格式为+441212312312 - String)。问题是它总是返回false,即使存在这样的行。我认为WHERE子句存在问题,但是LIKE也不会工作。我怎样才能做到这一点 ? 谢谢你的回复

1 个答案:

答案 0 :(得分:0)

我建议你直接从SQLiteDatabase对象实例中使用查询,插入,更新或删除子句;)

请参阅以下链接,了解您将返回的值

SQLiteDatabase Object

我也建议如果你只是想要它是否存在就不要问* ...询问_id因为它是主键它有一个索引;))< - 它意味着更快

我在这里寻找一个特定的行:

    public Cursor getEnvio(final String empresa_p, final String albaran_p) {
    return db.query(Envio.KEY_ENVIO, new String[] { Envio.KEY_ID,
            Envio.KEY_ALBARAN, Envio.KEY_LINEA, Envio.KEY_TIPO,
            Envio.KEY_DESTINATARIO, Envio.KEY_DIR, Envio.KEY_POBLACION,
            Envio.KEY_POBLACION, Envio.KEY_PRIORIDAD, Envio.KEY_INCIDENCIA,
            Envio.KEY_EMP, Envio.KEY_CPOSTAL }, Envio.KEY_EMP + " = ? AND "
            + Envio.KEY_ALBARAN + " = ? ", new String[] { empresa_p,
            albaran_p }, null, null, Envio.KEY_LINEA);
}