Android sqlite返回查询行数

时间:2013-06-01 19:11:40

标签: android sql sqlite select rows

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

    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是否有问题,或者我使用错误的参数来制作声明,任何帮助都会有很长的路要谢谢

1 个答案:

答案 0 :(得分: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();