【问题标题】:Get rows and their count获取行及其计数
【发布时间】:2021-04-15 09:36:22
【问题描述】:

假设我想获取给定表的行并在同一个查询中获取它们的总数。这如何在 SQLAlchemy 中完成?

我试过了:

session.query(Model, func.count(Model.id)).all()

但似乎只有一条记录加载到 Python 中,即使 count 为 11。

提前谢谢你!

【问题讨论】:

    标签: python sql sqlalchemy flask-sqlalchemy


    【解决方案1】:

    与查找列表长度的方法相同:

    rows = session.query(Model).all()
    number_of_rows = len(rows)
    

    【讨论】:

    • session.query(Model).count() 效率更高,因为它在数据库端计算计数
    • 也许吧? :) 单索引命中查询——也许?那些带有连接和过滤器的......也许不是?例如运行两次查询是否更快,一次使用.all(),一次使用.count()。或者只是 len() 已经获取并在内存中的那个。
    猜你喜欢
    • 2021-05-14
    • 2016-08-09
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2015-05-26
    相关资源
    最近更新 更多