我有这样的代码,显示使用KEY_CODE获得的每条记录。但我想显示只插入KEY_CODE和KEY_NAME的记录。我需要做什么?
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION},
KEY_CODE + " like '%" + inputText + "%'", null,
null, null, null, null);
}
答案 0 :(得分:0)
试试这个:
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION},
KEY_CODE + " like '%" + inputText + "%' AND " + KEY_NAME + " like '%" + inputName + "%'", null,
null, null, null, null);
}
如果您想要与Code和Name完全匹配,请不要使用LIKE use =
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION},
KEY_CODE + " = '" + inputText + "' AND " + KEY_NAME + " = '" + inputName +"'", null,
null, null, null, null);
}
答案 1 :(得分:0)
尝试这个
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION},
KEY_CODE + " like '%" + inputTextForKEY_CODE + "%' AND" + KEY_NAME + " like '%" + inputTextForKEY_NAME + "%'" , null,
null, null, null, null);
}
答案 2 :(得分:0)
在SQL中,您可以使用AND或OR构建逻辑表达式。
如果您要输入要与相应字段匹配的输入(即两者必须匹配),则应使用AND:
mCursor = mDb.query(true, SQLITE_TABLE,
new String[] { KEY_ROWID, KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION },
KEY_CODE + " LIKE ? AND " + KEY_NAME + " LIKE ?",
new String[] { "%"+inputText+"%", "%"+inputName+"%" },
null, null, null, null);
如果你有一个输入可以在任何一个字段中匹配,你应该使用OR:
mCursor = mDb.query(true, SQLITE_TABLE,
new String[] { KEY_ROWID, KEY_CODE, KEY_NAME, KEY_CONTINENT, KEY_REGION },
KEY_CODE + " LIKE ? OR " + KEY_NAME + " LIKE ?",
new String[] { "%"+inputText+"%", "%"+inputText+"%", },
null, null, null, null);
请注意,您应始终使用参数(?
)作为字符串值,以避免格式化问题和SQL injection attacks。