Обратный порядок сортировки SQLiteQueryBuilder

#android #sqlite

#Android #sqlite

Вопрос:

Я использую ContentProvider и SQLiteQueryBuilder:

     @Override
    public Cursor query(Uri uri, String[] projection, String selection,
                        String[] selectionArgs, String sortOrder) {

        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        qb.setTables(NEWS_TABLE);

        switch(sUriMatcher.match(uri)){
          case NEWS_ITEM_ID: qb.appendWhere(KEY_ID  "="   uri.getPathSegments().get(1));
                           break;
          default: break;
        }

        String orderBy;

        if (TextUtils.isEmpty(sortOrder)) {
              orderBy = KEY_DATE;
            } else {
                /* ______  WANT TO REVERSE IT HERE _____ */
              orderBy = sortOrder;
            }
        Cursor c = qb.query(newsDB, 
                            projection, 
                            selection, selectionArgs, 
                            null, null, 
                            orderBy);

        c.setNotificationUri(getContext().getContentResolver(), uri);

        return c;
    }
  

Как мне использовать обратный порядок сортировки для запроса? Спасибо за любую помощь.

Ответ №1:

ORDER BY предложение в SQL может иметь порядок возрастания или убывания. По умолчанию используется порядок по возрастанию. Чтобы задать обратный порядок сортировки, вам нужно добавить DESC ключевое слово в конец ORDER BY предложения.

 if (TextUtils.isEmpty(sortOrder)) {
    orderBy = KEY_DATE;
} else {
    /* ______  WANT TO REVERSE IT HERE _____ */
    orderBy = KEY_DATE   " DESC";
}