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


89

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

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

Ответы:


165

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

query.(Model).filter(something).limit(5).all()

Я предпочитаю этот метод другим упомянутым, он более компактный, так как дополнительные данные не передаются по сети ...
Яаков Бресслер

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, чтобы база данных не возвращала дополнительные данные.
Брайан Сайзмор,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.