SQLAlchemy 如何获取字段的最大值?
Posted
技术标签:
【中文标题】SQLAlchemy 如何获取字段的最大值?【英文标题】:How can SQLAlchemy get the maximum value of a field? 【发布时间】:2017-04-28 06:12:43 【问题描述】:我有以下 SQLAlchemy 类/模型:
class MyModel(db.Model):
my_id = db.Column(db.Integer, nullable=False, primary_key=True)
my_field = db.Column(db.String(128))
如何在表格中找到my_id
的最大值?
我见过this soluttion,但是,这似乎是一种丑陋的做法(我什至不知道如何在我的情况下应用它!)。当我想查询这张表时,我会这样做:
MyModel.query.filter(MyModel.my_field == "blah").one()
我不能做一些与此非常相似的事情来找到my_id
的最大值吗?
理想情况下,我会替换 filter(...)
【问题讨论】:
【参考方案1】:您可以添加一个order_by
子句
MyModel.query.filter(MyModel.my_field == "blah") \
.order_by(MyModel.my_id.desc()) \
.first()
【讨论】:
有效。它和 Max 操作一样高效吗? 我猜它不是(但是差异应该很小),但我不确定。您可以尝试分析它或检查数据库日志在每种情况下发出了什么查询。 我的结果是:0.27269 s(查询所有后)和 3.09944e-06 s(使用 func.max 后)以上是关于SQLAlchemy 如何获取字段的最大值?的主要内容,如果未能解决你的问题,请参考以下文章