2011-12-18 5 views
34

Son kaydı db'den almalıyım. Ben sqlalchemy kullanıyorum.Son mesaj nasıl alınır?

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

Ama çok ağır sorgu var: Şu anda ben böyle yapıyorum. Son rekoru nasıl daha iyi alabilirim?

cevap

76

Query.first()'a bir göz atın. Sağ sütunda bir sort belirtirseniz, ilki en sonunuz olacaktır. Bir örnek bu gibi görünebilir:

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

ama bu benim için çalıştı:

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

teşekkürler! 'ObjectRes.query.order_by ('- id'). First()' – dimazubrik

2

Bazen basit şeyler yeniden formüle etmek zordur

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