Potrzebuję uzyskać ostatni rekord z db. Używam sqlalchemy. Obecnie robię tak:Jak uzyskać ostatni rekord
obj = ObjectRes.query.all()
return str(obj[-1].id)
Ale to zbyt ciężkie zapytania. Jak mogę poprawić ostatnią płytę?
Potrzebuję uzyskać ostatni rekord z db. Używam sqlalchemy. Obecnie robię tak:Jak uzyskać ostatni rekord
obj = ObjectRes.query.all()
return str(obj[-1].id)
Ale to zbyt ciężkie zapytania. Jak mogę poprawić ostatnią płytę?
Spójrz na Query.first()
. Jeśli określisz sort w prawej kolumnie, pierwsza będzie twoja ostatnia. Przykładem może wyglądać następująco:
obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
Czasami trudno jest sformułować proste rzeczy:
SELECT * FROM ObjectRes WHERE id IN (SELECT MAX(id) FROM ObjectRes)
ale ten pracował dla mnie:
session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id)))
Dzięki! 'ObjectRes.query.order_by ('- id'). First()' – dimazubrik