¿Consulta SQLAlchemy para devolver solo n resultados?

84

He estado buscando en Google y leyendo la documentación de SQLAlchemy pero no he encontrado lo que estoy buscando.

Estoy buscando una función en SQLAlchemy que limite el número de resultados devueltos por una consulta a un número determinado, por ejemplo: 5? Algo como first()o all().

Xar
fuente

Respuestas:

157

para sqlalchemy >= 1.0.13 Utilice el método de límite .

query.(Model).filter(something).limit(5).all()
jkmacc
fuente
10

Sintaxis alternativa

query.(Model).filter(something)[:5].all()
mcolak
fuente
2
SQLAlchemy == 1.1.15, aumento:AttributeError: 'list' object has no attribute 'all'
Waket Zheng
1
Use esta consulta: consulta. (Modelo) .filter (algo) .limit (5) Funciona bien en SQLAlchemy == 1.1.15
Rana
1
Si lo hace [: 5], creo que la base de datos aún extraerá todos los resultados y luego solo usará los últimos 5. Definitivamente es mejor usar limit para evitar que la base de datos devuelva datos adicionales.
Brian Sizemore
0

En mi caso funciona como

def get_members():
    m = Member.query[:30]
    return m
Anar Salimkhanov
fuente