35

What's the best way to create an intentionally empty query in SQLAlchemy?

For example, I've got a few functions which build up the query (adding WHERE clauses, for example), and at some points I know that the the result will be empty.

What's the best way to create a query that won't return any rows? Something like Django's QuerySet.none().

4

4 回答 4

35

如果您需要正确的返回类型,只需 return session.query(MyObject).filter(sqlalchemy.sql.false())

评估时,这仍然会影响数据库,但应该很快。

如果您没有“查询”的 ORM 类,您也可以使用false()它: session.query(sqlalchemy.false()).filter(sqlalchemy.false())

于 2012-10-11T10:02:45.850 回答
5
db_session(YourModel).query.filter(False)
于 2020-03-19T09:56:38.227 回答
4

根据http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg25783.html,截至 2011 年 12 月 11 日,SQLAlchemy 中没有EmptyQuery类型对象。

于 2012-04-27T17:23:48.687 回答
0

使用 python 的True布尔文字:

_and(True, some_other_query, True, True)

是相同的:

some_other_query
于 2018-09-10T11:08:43.190 回答