SQLAlchemy中的Like运算符默认为通配符

AZh*_*hao 3 python sqlalchemy

有没有一种方法可以使用.likesqlalchemy函数返回所有内容?

我已经尝试过类似

session.query(Foo).filter(Foo.Bar.like('%'))
Run Code Online (Sandbox Code Playgroud)

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

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

Yar*_*min 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
Run Code Online (Sandbox Code Playgroud)