web-dev-qa-db-ja.com

最後のレコードを取得する方法

Dbから最後のレコードを取得する必要があります。 sqlalchemyを使用しています。現時点では、私はそのようにしている:

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

ただし、クエリが多すぎます。最後のレコードをより良くするにはどうすればよいですか?

50
dimazubrik

Query.first() を見てください。右側の列で sort を指定すると、最初が最後になります。例は次のようになります。

obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
114
miku

簡単なことを再定式化することが難しい場合があります。

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

しかし、これは私のために働いた:

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