我正在使用过滤,唯一实现的过滤器是按key_name搜索,我还想添加其他密钥。
public static Cursor fetchCountriesByName(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor c = null;
if (inputText == null || inputText.length () == 0) {
c = db.query(DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
null, null, null, null, null);
}
else {
c = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
KEY_NAME + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (c != null) {
c.moveToFirst();
}
return c;
}
当我尝试使用else {if(它请求了一个(c!= null),当我尝试修改时,KEY_NAME +“喜欢'%'+ inputText +”%'“,null,KEY_COUNTRY +”like“ %“+ inputText +”%'“,KEY_REGION +”like'%“+ inputText +”%'“);正在说非法的感觉。
如何正确做到?
感谢。
答案 0 :(得分:0)
您忘记在查询中添加AND
或OR
等条件
检查以下示例
db.query(true, DATABASE_TABLE,new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
KEY_NAME + " LIKE ? AND ", KEY_COUNTRY + " LIKE ? AND ", KEY_REGION + " LIKE ?",
new String[] {"%"+inputText+"%" ,"%"+inputText+"%" ,"%"+inputText+"%"},
null, null, null, null);
这里我使用AND
你可以根据需要更换它。