你认为我的问题是什么。
我正在查询sqlite数据库。 此代码不会给出任何结果。
String sql = " select _id from MYTABLE where _id = ? ";
Cursor cur = mDb.rawQuery(sql, new String[] {"5653"}) ;
但如果我执行的查询没有这样的参数:
String sql = " select _id from MYTABLE where _id = 5653 ";
Cursor cur = mDb.rawQuery(sql, null) ;
按预期返回一行。
非常感谢。
答案 0 :(得分:2)
这是因为值被绑定为字符串,而该列是(我猜)是一个int。所以where子句最终将成为
where _id = "5653"
来自rawQuery javadoc for selectionArgs -
您可以在查询中的where子句中包含?s,它将被selectionArgs中的值替换。这些值将绑定为字符串。
答案 1 :(得分:0)
试试这个:
String sql = " select _id from MYTABLE where _id = '5653' ";