Android SQLite поможет выбрать последние 10 - PullRequest
0 голосов
/ 07 мая 2011

привет, я использую этот код для просмотра списка моих разговоров

private Cursor getMessages( SQLiteDatabase db, boolean justNewMessages) {


    final String table = Constants.TABLE_CONVERSATION;
                                                                            //index
    final String[] columns = { Constants.TABLE_CONVERSATION_FIELD_ID,       //0
                               Constants.TABLE_CONVERSATION_FIELD_DATE,     //1
                               Constants.TABLE_CONVERSATION_FIELD_FROM,     //2
                               Constants.TABLE_CONVERSATION_FIELD_TO,       //3
                               Constants.TABLE_CONVERSATION_FIELD_MSG       //4
        };

    String selection;

    if(justNewMessages) {
        selection = "(" + Constants.TABLE_CONVERSATION_FIELD_FROM + " = '" + jid +"' or "
                        + Constants.TABLE_CONVERSATION_FIELD_TO + " = '" + jid + "') and "
                        + Constants.TABLE_CONVERSATION_FIELD_NEW + " = '1'";
    } else {
        selection = "(" + Constants.TABLE_CONVERSATION_FIELD_FROM + " = '" + jid +"' or "
                        + Constants.TABLE_CONVERSATION_FIELD_TO + " = '" + jid + "')";
    }

    final String[] selectionArgs = null;
    final String groupBy = null;
    final String having = null;
    final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE;

    return db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
}

Я хотел бы выбрать 10 в последний раз я пытаюсь

final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE + " DESC LIMIT 10";

это последний разговор, но перевернутый (последнее слово вверх) как выбрать только 10 последний разговор ИЛИ удалить и оставить 10 последних разговоров и показать это ... Не могу ли вы помочь мне начать идею, я не понимаю ...

Ответы [ 3 ]

2 голосов
/ 09 мая 2011

Попробуйте этот запрос,

Select * from [table] LIMIT 
((Select count([any_column_name]) from [table])-10),10

это выберет последние 10 строк вашей таблицы. замените * any_column_name * на любой столбец таблицы yr.

С уважением, Найт Шах

1 голос
/ 17 мая 2011

ИСПРАВЛЕНО Спасибо за советы, это решение, спасибо спасибо

Исправлено

final String tableff ="Select "+Constants.TABLE_CONVERSATION_FIELD_ID+","+Constants.TABLE_CONVERSATION_FIELD_DATE+","+Constants.TABLE_CONVERSATION_FIELD_FROM+","+Constants.TABLE_CONVERSATION_FIELD_TO+","+Constants.TABLE_CONVERSATION_FIELD_MSG+" from ["+table+"] WHERE "+selection+" LIMIT ((Select count(["+Constants.TABLE_CONVERSATION_FIELD_DATE+"]) from ["+table+"] WHERE "+selection+")-10),10";

    return db.rawQuery(tableff, selectionArgs);
0 голосов
/ 07 мая 2011

попробуйте это:

final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE + " DESC";
final String limit= 10;

return db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...