【问题标题】:Filter like % for a list - Sqlalchemy过滤列表的百分比 - Sqlalchemy
【发布时间】:2021-11-10 21:28:26
【问题描述】:

是一个列表 filter_value= [a, b, c] session.query.filter(mytable.column.in_(filter_value)).all()

在这种情况下,过滤器将返回与列表中每个项目完全相同的值 (filter_value)。

但是,我希望像 SQL 中那样进行过滤,例如 select *from mytable where column like a%, b%, c%, ...% 我的意思是“喜欢列表中的每个元素”。对不起,如果我解释不好 我会为此做些什么?非常感谢

【问题讨论】:

    标签: python sqlalchemy flask-sqlalchemy flask-restful


    【解决方案1】:

    我假设您的意思是 SQL LIKE,我认为这适用于 id 作为字符串。

    session.query(MyUserClass).filter(or_(*[MyUserClass.id.like(prefix + '%') for prefix in filter_list]))
    

    【讨论】:

    • 非常感谢威尔逊,非常感谢您的回答。请问'*'是什么意思?
    • 将 arg 列表转换为函数的参数,该函数采用动态数量的参数,如 or_(*args)。
    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多