SQLAlchemy-Abfrage, um nur n Ergebnisse zurückzugeben?


86

Ich habe die SQLAlchemy-Dokumentation gegoogelt und gelesen, aber nicht gefunden, wonach ich suche.

Ich suche nach einer Funktion in SQLAlchemy, die die Anzahl der von einer Abfrage zurückgegebenen Ergebnisse auf eine bestimmte Anzahl begrenzt, zum Beispiel: 5? So etwas wie first()oder all().

Antworten:


161

für sqlalchemy >= 1.0.13 Verwenden Sie die Limit- Methode.

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

Ich bevorzuge diese Methode gegenüber den anderen genannten, ist schlanker, da die zusätzlichen Daten nicht über das Netzwerk übertragen werden ...
Yaakov Bressler

10

Alternative Syntax

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

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

1
Verwenden Sie diese Abfrage: query. (Model) .filter (etwas) .limit (5) Es funktioniert gut in SQLAlchemy == 1.1.15
Rana

2
Wenn Sie dies tun [: 5] Ich denke, die Datenbank würde immer noch alle Ergebnisse abrufen und dann würden Sie nur die letzten 5 verwenden. Definitiv besser, Limit zu verwenden, um zu verhindern, dass die Datenbank zusätzliche Daten zurückgibt.
Brian Sizemore

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.