Android 带两个where的SQLite查询
根据两个参数,type和name,我试图从sqlite数据库中获取数据。 我尝试了很多解决方案,但没有一个奏效。 这就是我的疑问Android 带两个where的SQLite查询,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,根据两个参数,type和name,我试图从sqlite数据库中获取数据。 我尝试了很多解决方案,但没有一个奏效。 这就是我的疑问 ... mCursor = db.query(false,TABLE_SERVICE, new String[] {KEY_ID,KEY_NAME, KEY_ADRESSE, KEY_EMAIL, KEY_NUMTEL, KEY_WEBSITE,KEY_IMAGE}, KEY_NAME
...
mCursor = db.query(false,TABLE_SERVICE, new String[] {KEY_ID,KEY_NAME,
KEY_ADRESSE, KEY_EMAIL, KEY_NUMTEL, KEY_WEBSITE,KEY_IMAGE},
KEY_NAME
+ " like ? and " + KEY_TYPE+ " like ?",
new String[] {inputText,c}, null, null, null,null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
....
我也试过:
KET_NAME + "=" + inputText+ " AND " + KEY_TYPE + "=" + c
还有这个
KEY_NAME + " = '" + inputText+ "' AND " + KEY_TYPE + " = '" + c+ "'"
什么都没用!我得到一个空光标。请注意,
LIKE
与=
的工作方式不同LIKE
将匹配模式作为参数,例如“%query%”(表示包含单词“query”的任何内容)。LIKE最有可能用于从人工输入执行搜索,查找部分匹配,并且不区分大小写。如果您知道参数的确切值,那么应该使用=
,这也会更快
另外,query()
从不返回null
,因此无需测试null
您的代码似乎正确,因此如果查询返回空光标,那只是因为当前数据库中没有与您的查询匹配的内容。谢谢您的解释,我不知道!当我使用一个参数时,我的查询是有效的。。我会尝试其他东西,看看结果。谢谢,
inputText
和c
的值是什么?您认为应该匹配的实际列或记录是什么?