sqlalchemy 过滤多列

新手上路,请多包涵

如何组合两列并应用过滤器?例如,我想同时在“firstname”和“lastname”列中进行搜索。如果只搜索一列,这就是我的做法:

 query = meta.Session.query(User).filter(User.firstname.like(searchVar))

原文由 teggy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 594
1 个回答

适用于多列的通用代码。如果需要在应用程序中有条件地实现搜索功能,也可以使用此功能。

 search_key = 'abc'
search_args = [col.ilike('%%%s%%' % search_key) for col in ['col1', 'col2', 'col3']]
query = Query(table).filter(or_(*search_args))
session.execute(query).fetchall()

注意: %% 对于跳过 % 格式化查询很重要。

原文由 Azharullah Shariff 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题