#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";
}