首页 > 解决方案 > Flask-SqlAlchemy - 当所有其他字段都相同时获取最新记录

问题描述

我正在使用 Flask SqlAlchemy 存储数据,但有些行仅在创建的时间戳上有所不同(所有其他字段都相同),并且只想显示这些记录的最新条目。

创建 姓名 数据
2020-01-01 美国广播公司 cde
2020-01-02 美国广播公司 cde

我尝试了不同的、子查询、限制、from_self 的各种组合,但找不到有效的解决方案。

query = db.session.query().select_from(mytable).filter(mytable.name=='abc').distinct().order_by(mytable.created.desc())

任何提示我如何才能实现只显示最新记录?

标签: sqlalchemyflask-sqlalchemy

解决方案


假设您的表具有这样的关联模型:

class MyTable(db.Model):
    id = Column(Integer, primary_key=True)
    name = Column(String)
    data = Column(String)
    created = Column(String)

那么这应该工作:

obj = MyTable.query().order_by(MyTable.created.desc()).first()

推荐阅读