2016-12-26 2 views
0

Предположим, что есть таблица под названием RecentViewItem, в которой хранятся недавно просмотренные элементы пользователем. Я хочу сохранить только первые 10 Недавно просмотренные товары, удаляя все остальные предметы. Мой запрос выглядит так:Как удалить первые n строк в области

RealmResults<RecentViewItem> results = 
    realm.where(RecentViewItem.class) 
     .findAllSorted("updatedAt", Sort.DESCENDING); 
// What to do next ? 

ответ

0
RealmResults<RecentViewItem> results = realm.where(RecentViewItem.class).findAllSorted("updatedAt", Sort.DESCENDING); 
for(int i = 0, size = results.size(); i < 10 && i < size; i++) { 
    RecentViewItem recentViewItem = results.get(i); 
    recentViewItem.deleteFromRealm(); 
} 
+0

Как об удалении первого 1000 или что 10^5 строк? На самом деле я ищу ответ без цикла. –

+0

Вы не найдете ответ без петли, если у вас нет индекса, который вы можете обновить, для которого вы можете определить запрос, с помощью которого вы можете получить «RealmResults», на который вы можете позвонить «deleteAllFromRealm()» – EpicPandaForce

+0

Я не понял ваша мысль точно, может быть, вам нужен столбец, с помощью которого вы можете получить только первые n строк и вызвать deleteAllFromRealm(). было бы лучше, если бы вы разработали плз. –

Смежные вопросы