我试图从我的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
+ " 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+ "'"
没有任何效果!我得到一个空光标。
答案 0 :(得分:1)
请注意LIKE
与=
的工作方式不同。 LIKE
将匹配模式作为参数,例如“%query%”(表示包含单词“query”的任何内容)。 LIKE最有可能用于从人类输入执行搜索,寻找部分匹配并且不区分大小写。如果你知道参数的确切值,那么你应该使用更快的=
。
此外,query()
永远不会返回null
,因此无需测试null
。
您的代码似乎是正确的,所以如果您的查询返回一个空的Cursor,那只是因为没有任何内容与您当前数据库中的查询匹配。