【问题标题】:Query processing in SQL Alchemy - PythonSQLAlchemy 中的查询处理 - Python
【发布时间】:2016-02-20 14:31:04
【问题描述】:

我需要使用 SQLAlchemy 进行动态查询处理。

考虑有一个表,它具有三个字段名称、年龄、城市。

我需要从表中获取具有 (s,r,t) 字符的城市名称。

对于我构建的 SQLAlchemy 查询如下:

query = query.filter(or_(model.city.like('%s%'),model.city.like('%r%'),model.city.like('%t%')))

它按我的预期工作。

但现在我的问题是关于在我的代码执行期间处理值。

因为在我的情况下,这些字符需要从 python 的列表中获取。

考虑python列表:

['s','m','n']

所以现在这里需要对列表中的这些值进行动态查询。

我也不能确定列表中的条目数,所以它应该是动态工作的。

这里的主要目标是在 SQLAlchemy 中动态地执行“like”和“or”。

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    您可以通过like() 方法映射列表字符并将结果转换为_or()。大致如下:

    chars = ['s','m','n']
    
    query = query.filter(or_(*map(
                                  lambda x: model.city.like('%{}%'.format(x)),
                                  chars
    )))
    

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多