与SQLAlchemy中的运算符一样,默认为通配符

时间:2015-09-30 17:14:26

标签: python sqlalchemy

有没有办法使用.like sqlalchemy函数返回所有内容?

我尝试过像

这样的东西
session.query(Foo).filter(Foo.Bar.like('%'))

但是这只返回在Foo列中具有值的值。我想编写一个默认关键字参数值为'%'的函数或通配符,以便可以根据需要使用它来过滤数据。

我查看了文档但没有成功:(http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.match

1 个答案:

答案 0 :(得分:5)

如果要返回所有数据,则根本不需要应用过滤器。使用if语句有条件地应用过滤器:

def my_func(pattern=None):
    query = session.query(Foo)

    if pattern is not None:
        query = query.filter(Foo.Bar.like(pattern))

    return query
相关问题