0

在 SQL Alchemy 中,每个会话查询都会返回一个 Query 类的实例。

我试图像这样评估查询,期望它的行为类似于列表:

if session.query(...).filter_by(...):

但是它总是评估为真,所以我最终改为这样做:

if session.query(...).filter_by(...).count():

这似乎有点啰嗦和不正确。有没有更好的方法来检查查询是否会返回结果?

4

1 回答 1

0

查询在何时发出 SQL 时必然是保守的,这就是为什么它没有__len__()方法的原因。

通常,如果我想查看查询是否返回结果,我会调用.first(),以便至少数据库只需要找到一行而不是所有行来确定.count().

于 2013-09-19T16:29:02.713 回答