Android SQLite "МЕЖДУ" не включительно или возвращает все записи - PullRequest
5 голосов
/ 31 января 2012

Казалось бы, очень простая задача - попытаться получить заданный диапазон записей / строк в моей базе данных SQLite в приложении для Android с помощью следующего:

String[] projection = {"_id"};
String selection = "_id between ? and ?";
String[] selectionArgs = {"1", "10"};

queryBuilder.query(db, projection, selection, selectionArgs, null, null, null);

С помощью вышеупомянутых selectionArgs я получаю толькодве строки, строки 1 и 10. Если я изменяю arg на что-либо еще, я получаю весь лот (весь набор записей / строк), как если бы не было условий.Один день бился в голову, почему это работает так, как работает, может быть, есть что-то особенное, что нужно знать об использовании между ними в SQLite?Любые комментарии / помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Вы можете использовать этот код.

private SQLiteDatabase productDatabase;
   public Cursor get_result(){
   Cursor c;
   String sql = "SELECT * FROM " + tableName +"WHERE _id BETWEEN" + value1 +"AND" + value2;
   c = productDatabase.rawQuery(sql, null);
}

Cursor cursor=get_result();
    if(cursor.moveToNext()){
    Log.d("count of product id="+cursor.getString(0));
}
0 голосов
/ 31 января 2012

Кажется, проблема с вашей стороны, я проверил, и она отлично работает,

Метод

public Cursor GetBetween(String[] projection,String selection, String[] args){
        return db.query(TBL_NAME, projection, selection, args, null, null, null);
    }

Осуществление

        String[] projection = new String[]{"_id"};
        String[] selectionArgs = new String[]{"1","3"};
        String selection = "_id between ? and ?";
        Cursor cursorGetBetween = helper.GetBetween(projection,selection, selectionArgs);
        startManagingCursor(cursorGetBetween);
        cursorGetBetween.moveToFirst();
        while(!cursorGetBetween.isAfterLast()){
            Log.d("value of cursorGetBetween", cursorGetBetween.getString(0));
            cursorGetBetween.moveToNext();
        }

выход

01-31 18:42:58.176: D/value of cursorGetBetween(647): 1
01-31 18:42:58.176: D/value of cursorGetBetween(647): 2
01-31 18:42:58.176: D/value of cursorGetBetween(647): 3
...