Flask-SQLAlchemy .count() 和 .all() 的记录计数不同

2024-04-30

在 SQLAlchemy 中,ModelName.query.filter_by(field_name=value).count()返回正确的记录数,但是ModelName.query.filter_by(field_name=value).all()只返回一条记录。做一个db.session.execute("SELECT * FROM table_name WHERE field_name = 'value'")工作正常。有人遇到过类似的问题吗?有谁知道可能出了什么问题。任何指示都会有帮助。

可能有帮助的信息
我正在使用 MS SQL Server 2008 R2 并使用 FreeTDS/pyodbc 访问它。我不控制数据库,也无法更改它。

提前致谢。


我想我可能也陷入了同样的问题。我的查询执行多个联接,比原始结果可以带回同一主键的多行,每行均由 .count() 计数,但是当您调用 .all() 时,将在主键上应用不同的并且仅是唯一的获取行,但 .all() 列表上的记录数与 .count() 不同。

这应该是相等的:

query.distinct().count() == query.all()

此致

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask-SQLAlchemy .count() 和 .all() 的记录计数不同 的相关文章

随机推荐