Запрос SQLAlchemy, чтобы вернуть только n результатов?

89

Я искал в Google и читал документацию по SQLAlchemy, но не нашел того, что ищу.

Я ищу функцию в SQLAlchemy, которая ограничивает количество результатов, возвращаемых запросом, определенным числом, например: 5? Что-то вроде first()или all().

Xar
источник

Ответы:

165

для sqlalchemy >= 1.0.13 использования метода ограничения .

query.(Model).filter(something).limit(5).all()
jkmacc
источник
Я предпочитаю этот метод другим упомянутым, он более компактный, так как дополнительные данные не передаются по сети ...
Яаков Бресслер
10

Альтернативный синтаксис

query.(Model).filter(something)[:5].all()
Маколак
источник
2
SQLAlchemy == 1.1.15, повышение:AttributeError: 'list' object has no attribute 'all'
Waket Zheng
1
Используйте этот запрос: query. (Model) .filter (something) .limit (5) Он отлично работает в SQLAlchemy == 1.1.15
Rana
2
Если вы сделаете [: 5], я думаю, что база данных все равно будет извлекать все результаты, и тогда вы будете использовать только последние 5. Определенно лучше использовать limit, чтобы база данных не возвращала дополнительные данные.
Брайан Сайзмор,
0

В моем случае это работает как

def get_members():
    m = Member.query[:30]
    return m
Анар Салимханов
источник