AndroidでSQLiteデータベースのクエリに問題があります。私はいくつかの値を "リセット"と呼ばれるテーブルがあります。現在、私は1つのエントリしか持っていません。SQLiteDatabase.rawQuery()が正常に動作した場合のSQLiteDatabase.query()の問題
reset_timestamp | interval
1479442048 | 5
これは実行しようとしたクエリです。ただし、cursor.getCount()を呼び出すと結果は0になります。実行するクエリは次のとおりです。
SELECT reset_timestamp FROM resets WHERE (reset_timestamp=1479442048);
私は本当にrawQuery()を使用したくありません。私はquery()を使いたいです。ここに私の質問文があります。
SQLiteDatabase db = new PowerDbHelper(this).getWritableDatabase();
String[] resetsQueryColumns = {"reset_timestamp"};
String[] resetsQuerySelectArgs = {"1479442048"};
Cursor cursor = db.query("resets", resetsQueryColumns, "reset_timestamp=?",
resetsQuerySelectArgs, null, null, null);
ただし、getCount()はこれを0と返します。一方、これは正常に動作し、私の結果を返します
cursor = db.rawQuery("select reset_timestamp from resets where (reset_timestamp=1479442048)", null);
getCount()は1を返します。 '?'の前後に引用符を付ける私に与えます
java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range
私はquery()に間違っていますか?
そして私をgetCount()を参照してください、私はcursor.getCount()を参照しています。 – kernel