SQLAlchemy:创建一个故意空的查询?

时间:2012-04-27 05:41:19

标签: python sqlalchemy

在SQLAlchemy中创建故意空查询的最佳方法是什么?

例如,我有一些构建查询的函数(例如,添加WHERE子句),在某些时候我知道结果将为空。

创建不返回任何行的查询的最佳方法是什么?像Django的QuerySet.none()

4 个答案:

答案 0 :(得分:22)

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

评估时,这仍然会击中数据库,但它应该很快。

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

db_session(YourModel).query.filter(False)

答案 3 :(得分:0)

使用python的True布尔文字:

_and(True, some_other_query, True, True)

与以下相同:

some_other_query