2011-12-18 296 views
34

我需要从数据库中获取最后一条记录。我正在使用sqlalchemy。 目前,我做这样的:如何获取最后一条记录

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

但它太重了查询。我怎样才能让最后一张唱片更好?

回答

76

看看Query.first()。如果您在右栏指定sort,则第一个将是您的最后一个。一个例子可能是这样的:

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

谢谢! 'ObjectRes.query.order_by(' - id')。first()' – dimazubrik

2

有时很难再形成简单的事情:

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

但这种工作对我来说:

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id))) 
相关问题