2011-12-18 10 views
34

Ho bisogno di ottenere l'ultimo record da db. Sto usando sqlalchemy. Al momento, sto facendo del genere:Come ottenere l'ultimo record

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

Ma è troppo pesante interrogazione. Come posso ottenere l'ultimo record migliore?

risposta

76

Dai uno sguardo allo Query.first(). Se si specifica un sort nella colonna di destra, il primo sarà l'ultimo. Un esempio potrebbe essere la seguente:

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

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

2

A volte è difficile riformulare le cose semplici:

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

ma questo ha funzionato per me:

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id))) 
Problemi correlati