将Query()评估为bool

时间:2013-09-13 00:03:25

标签: python-2.7 sqlalchemy

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

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

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

然而,它总是评估为真,所以我最终做了这个:

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

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

1 个答案:

答案 0 :(得分:0)

查询在发出SQL时必然是保守的,这就是为什么它是has no __len__() method

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