jim*_*imt 31 python sqlalchemy
我正在使用SqlAlchemy存储一些带有DateTime字段的对象:
my_date = Field(DateTime())
Run Code Online (Sandbox Code Playgroud)
我想运行一个查询来检索最近的几个对象(具有my_date字段的实体是最新的).
我尝试过以下方法:
entities = MyEntity.query.order_by(MyEntity.time).limit(3).all()
entities = MyEntity.query.order_by(-MyEntity.time).limit(3).all()
Run Code Online (Sandbox Code Playgroud)
但是这些查询以相同的顺序返回相同的对象.SqlAlchemy文档指出使用' - '来颠倒顺序,但我肯定在这里遗漏了一些东西.
有人可以帮忙吗?
thi*_*dot 61
你可以这样做:
entities = MyEntity.query.order_by(desc(MyEntity.time)).limit(3).all()
Run Code Online (Sandbox Code Playgroud)
您可能需要:
from sqlalchemy import desc
Run Code Online (Sandbox Code Playgroud)
这是一些文档.
另一种选择是:
stmt = select([users_table]).order_by(users_table.c.name.desc())
Run Code Online (Sandbox Code Playgroud)
小智 8
entities = MyEntity.query.order_by(MyEntity.my_date.desc()).limit(3).all()
Run Code Online (Sandbox Code Playgroud)
应该管用.