我有一个数据库“人物”,有两列NAME
和RANK
我按列NAME
进行选择,参数为“Tom”:
db = databaseHelper.open();
userCursor = db.rawQuery(“select *from “ + DatabaseHelper.TABLE + “ where “ + DatabaseHelper.COLUMN_NAME + “ =? “,
new String[] {“Tom”} );
它运作良好。
但是,如果我同时选择NAME
和RANK
db = databaseHelper.open();
userCursor=db.rawQuery(“select *from “ + DatabaseHelper.TABLE + “ where “ + DatabaseHelper.COLUMN_NAME + “=?” + “ and “ + DatabaseHelper.COLUMN_RANK + “ =? “,
new String[] {“Tom”, “Junior”} );
不起作用。
我的错在哪里?或者也许是一些建议
答案 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;
}