在SQL Alchemy中,从每个会话查询返回一个Query类的实例。
我尝试像这样评估查询,期望它的行为与列表类似:
if session.query(...).filter_by(...):
然而,它总是评估为真,所以我最终做了这个:
if session.query(...).filter_by(...).count():
这似乎有点啰嗦和不正确。有没有更好的方法来检查查询是否会返回结果?
答案 0 :(得分:0)
查询在发出SQL时必然是保守的,这就是为什么它是has no __len__()
method。
通常如果我想查看查询是否返回结果,我会调用.first()
,这样至少DB只需要找到一行而不是所有行来确定.count()