2011-12-18 2 views
34

db에서 마지막 레코드를 가져와야합니다. 나는 sqlalchemy를 사용하고있다.마지막 레코드 얻는 방법

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

을하지만 너무 무거운 쿼리 : 순간, 난 그렇게하고 있어요. 마지막 레코드를 어떻게 더 잘 얻을 수 있습니까?

답변

76

Query.first()을 살펴보십시오. 오른쪽 열에 sort을 지정하면 첫 번째 것이 마지막 것입니다. 예는 다음과 같을 수 있습니다 :

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

그러나 이것은 나를 위해 일한 :

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

감사합니다! 'ObjectRes.query.order_by ('- id'). first()' – dimazubrik

2

때로는 간단한 일을 재구성하기 어려운

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id))) 
관련 문제