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) ;

期待どおり 1 行が返されます。

どうもありがとう。

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 に答える