5

在 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 访问它。我不控制数据库,也无法更改它。

提前致谢。

4

2 回答 2

1

我想我可能遇到了同样的问题。我的查询执行多个联接,而不是原始结果可以带回相同主键的多行,每一行都由 .count() 计数,但是当您调用 .all() 时,主键上应用了不同的并且只有唯一获取行,而不是 .all() 列表上的记录数与 .count() 不同。

这应该是相等的:

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

此致

于 2019-11-22T03:40:02.063 回答
-2

该函数all()返回一个列表并count()返回一个数字......

于 2013-09-17T11:03:31.723 回答