2011-12-18 89 views
34

Necesito obtener el último registro de db. Estoy usando sqlalchemy. Por el momento, lo estoy haciendo así:Cómo obtener el último registro

obj = ObjectRes.query.all() 
return str(obj[-1].id) 

consulta Pero es demasiado pesado. ¿Cómo puedo obtener el último disco mejor?

Respuesta

76

Eche un vistazo a Query.first(). Si especifica un sort en la columna de la derecha, el primero será el último. Un ejemplo podría tener este aspecto:

obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first() 
+24

Gracias! 'ObjectRes.query.order_by ('- id'). First()' – dimazubrik

2

A veces es difícil para reformular las cosas simples:

SELECT * FROM ObjectRes WHERE id IN (SELECT MAX(id) FROM ObjectRes) 

pero esto funcionó para mí:

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id))) 
Cuestiones relacionadas