具有多个搜索字段的SQL选择?

时间:2018-06-12 15:29:44

标签: android sql

我有一个数据库“人物”,有两列NAMERANK 我按列NAME进行选择,参数为“Tom”:

db = databaseHelper.open();
userCursor = db.rawQuery(“select *from “ + DatabaseHelper.TABLE + “ where “ + DatabaseHelper.COLUMN_NAME + “ =? “,
new String[] {“Tom”} );

它运作良好。
但是,如果我同时选择NAMERANK

db = databaseHelper.open();
userCursor=db.rawQuery(“select *from “ + DatabaseHelper.TABLE + “ where “ + DatabaseHelper.COLUMN_NAME + “=?” + “ and “ + DatabaseHelper.COLUMN_RANK + “ =? “,
new String[] {“Tom”, “Junior”} );

不起作用。
我的错在哪里?或者也许是一些建议

2 个答案:

答案 0 :(得分:0)

我发现了错误: 我忘了添加userCursor.moveToNext();最后把“或”不是“和”。

db = databaseHelper.open(); userCursor = db.rawQuery(“select * from”+ DatabaseHelper.TABLE +“where”+ DatabaseHelper.COLUMN_NAME +“=?”+“或”+ DatabaseHelper.COLUMN_RANK +“=?”, new String [] {“Tom”,“Junior”}); userCursor.moveToNext();

答案 1 :(得分:-1)

尝试这样对我有用。 这是正常的SQL查询,在这里你可以得到你的光标结果。之后,您可以迭代光标以获取数据。 这是带AND的常规WHERE子句。

 public Cursor getDetail(String feed_id, String feed_flag) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery("SELECT * FROM " + DatabaseHelper.TABLE + " WHERE " + DatabaseHelper.COLUMN_NAME + "='" + "Tom" + "' AND " + DatabaseHelper.COLUMN_RANK + "='" + "Junior+ "'", null);
        return c;
    }