Найти - Пользователи
Полная версия: SQLAlchemy: Фильтрация query по номерам записей
Начало » Базы данных » SQLAlchemy: Фильтрация query по номерам записей
1
torin2k
Прошу помощи.

Допустим есть:

tbl = Table('Table', metadata,
Column('id', Numeric, primary_key=True),
Column('name', String(4000)))

class Obj(object):
pass

orm.mapper(Obj, tbl)

q = Session.query(Obj)


Как можно реализовать фильтрацию записей допустим с 11 по 20.

(Нужно для реализации пагинатора)

Знаю, что в oracle есть служебное слово “rownum”, но очень не хочется писать нативный SQL в выборках и привязыватся к конкретной СУБД.

Пока решением вижу только перебор rows в цикле.
ziro
Сфмый простой вариант q = Session.query(Obj) или его аналог q = Session.query(Obj).slice(11, 20)

Более подробно - http://www.sqlalchemy.org/docs/reference/orm/query.html#sqlalchemy.orm.query.Query.slice
torin2k
ziro
Сфмый простой вариант q = Session.query(Obj) или его аналог q = Session.query(Obj).slice(11, 20)

Более подробно - http://www.sqlalchemy.org/docs/reference/orm/query.html#sqlalchemy.orm.query.Query.slice
Спасибо, то что надо!

И с сортировкой корректно работает.
bw
Для паджинации логичнее выглядят .offset(11) и .limit(10).

..bw
torin2k
bw
Для паджинации логичнее выглядят .offset(11) и .limit(10).

..bw
про offset не знал.

ЗЫ: sqlalchemy хорошая штука, но документация ужасная.
PooH
torin2k
ЗЫ: sqlalchemy хорошая штука, но документация ужасная.
Ой! Вей! У алхимии отличная документация, вы плохой еще не видели ;)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB