Zapytanie SQLAlchemy zwracające tylko n wyników?


90

Szukałem w Google i czytałem dokumentację SQLAlchemy, ale nie znalazłem tego, czego szukam.

Szukam funkcji w SQLAlchemy, która ogranicza liczbę wyników zwracanych przez zapytanie do określonej liczby, na przykład: 5? Coś takiego first()lub all().

Odpowiedzi:


166

dla sqlalchemy >= 1.0.13 Użyj metody limitu .

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

Wolę tę metodę od innych wymienionych, jest szczuplejsza, ponieważ dodatkowe dane nie są przesyłane przez sieć ...
Yaakov Bressler

10

Alternatywna składnia

query.(Model).filter(something)[:5].all()

2
SQLAlchemy == 1.1.15, podbicie:AttributeError: 'list' object has no attribute 'all'
Waket Zheng

1
Użyj tego zapytania: query. (Model) .filter (coś) .limit (5) Działa dobrze w SQLAlchemy == 1.1.15
Rana

2
Jeśli to zrobisz [: 5] Myślę, że baza danych nadal pobierze wszystkie wyniki, a wtedy użyjesz tylko ostatnich 5. Zdecydowanie lepiej jest użyć limitu, aby zapobiec zwracaniu przez bazę danych dodatkowych danych.
Brian Sizemore

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.