2

你认为我的问题是什么。

我正在查询一个 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) ;

一行按预期返回。

非常感谢。

4

2 回答 2

2

发生这种情况是因为这些值被绑定为字符串,并且该列(我猜)是一个 int。所以 where 子句最终会变成

where _id = "5653"

来自用于 selectionArgs 的 rawQuery javadoc -

您可以在查询的 where 子句中包含 ?s,它将被 selectionArgs 中的值替换。这些值将绑定为字符串。

于 2013-02-16T21:08:50.253 回答
0

试试这个:

String sql = " select _id from MYTABLE where  _id = '5653'  ";
于 2013-02-16T21:11:22.517 回答