我正在尝试构建一个方法来确定用户是否在插入之前存在于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是否有问题,或者我使用错误的参数来制作声明,任何帮助都会有很长的路要谢谢
答案 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();