如何从数据库中只获取两个字段数据?

时间:2013-10-26 20:13:31

标签: android sqlite

我有这样的代码,显示使用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);
}

3 个答案:

答案 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