1

我正在尝试构建一种方法来确定用户在插入之前是否存在于 Android sqlite 数据库中,我尝试构建此方法来返回行数,但是如果我尝试搜索类似这样的匹配项

    String[] columns = new String[] { SCREEN_NAME, NAME, PROFILE_IMAGE_URL,
            USER_ID };
    Cursor c = friendsDatabase.query(DATABASE_TABLE, columns, SCREEN_NAME
            + " LIKE '" + screenName + "%'", null, null, null, null);
    c.moveToFirst();
    Integer count= c.getCount();
    c.close();

    return count;

我得到返回的行数没有问题但是当我寻找这样的完全匹配时

String[] columns = new String[] { SCREEN_NAME, NAME, PROFILE_IMAGE_URL,
            USER_ID };
    Cursor c = friendsDatabase.query(DATABASE_TABLE, columns, SCREEN_NAME
            + " = '" + screenName + "'", null, null, null, null);
    c.moveToFirst();
    Integer count= c.getCount();
    c.close();

    return count;

无论是否匹配,我每次都会得到 0 行,我不确定我的 SQL 是否有问题,或者我使用错误的参数来生成语句,任何帮助都会有很大帮助,谢谢

4

1 回答 1

2

试试这个代码它可能会工作

使用原始查询

Cursor mCount= db.rawQuery("select count(*) from "+ DATABASE_TABLE +" where "+SCREEN_NAME+"='" + SCREEN_NAME + "'", null);
mCount.moveToFirst();
int count= mCount.getInt(0);
mCount.close();

或使用相同的代码但不同

db.query(DATABASE_TABLE , columns, SCREEN_NAME=?, new String[] { SCREEN_NAME}, null, null, null);
c.moveToFirst();
Integer count= c.getCount();
c.close();
于 2013-06-01T20:38:24.563 回答