на эту:
https://stackoverflow.com/questions/34674968/select-from-tarantool-by-secondary-index-with-sort-by-another-field-and-limit-of
но с тем отличием, что field3 (условно rating, как в примере) должен быть уникальным.
То есть, имеем поля:
-id - unique
-status - unique
-rating - unique
теперь нужно выбрать по status, но отсортировать по уникальному rating.
в sql было бы так:
select * from t where status=123 order by rating desc limit 10 offset 20
Пробовал делать, как посоветовал Костя:
s:create_index('status_rating', {unique = true, parts = {{'status'}, {'rating'}}})
s:insert({nil, 123, 'AAA'})
вывожу так:
s.index.status_rating:select({123}, {iterator='REQ',offset=20,limit=10})
- сортирует, но так теряется уникальность rating - можно вставить такой же в другой status:
s:insert({nil, 456, 'AAA'})
а rating должен быть уникальным.
или сначала проверять, имеется ли rating со значением 'AAA', а потом только делать вставку?
а кто мешает оставить уникальный индекс по rating?
Обсуждают сегодня