Python 按包含列表中的子字符串的字段筛选sqlalchemy查询
我正在为我的web应用开发一个高级搜索过滤器,我想知道是否有办法实现这样的过滤器。我需要的是能够指定子字符串列表,然后过滤查询中包含指定列表中任何子字符串的值 账户名称 [夏延, 丹, 弗兰, 莎伦, [凯伦] 过滤器列表=['an','ar'] 后查询 [丹, 弗兰, 莎伦, [凯伦] 因此,在上面的示例中,夏延将被删除,因为该名称不包含“an”或“ar” 我尝试过的 到目前为止,我尝试的是contains和in_u运算符,尽管我不确定如何将两者结合起来_in仅在字符串完全匹配时起作用,而contains一次仅对1个字符串起作用。有什么想法吗 query=session.query(Account).filter(Account.name).in(filter\u列表)Python 按包含列表中的子字符串的字段筛选sqlalchemy查询,python,sqlalchemy,Python,Sqlalchemy,我正在为我的web应用开发一个高级搜索过滤器,我想知道是否有办法实现这样的过滤器。我需要的是能够指定子字符串列表,然后过滤查询中包含指定列表中任何子字符串的值 账户名称 [夏延, 丹, 弗兰, 莎伦, [凯伦] 过滤器列表=['an','ar'] 后查询 [丹, 弗兰, 莎伦, [凯伦] 因此,在上面的示例中,夏延将被删除,因为该名称不包含“an”或“ar” 我尝试过的 到目前为止,我尝试的是contains和in_u运算符,尽管我不确定如何将两者结合起来_in仅在字符串完全匹配时起作用,而co
query=session.query(Account).filter(Account.name).contains(filter\u list[0])我自己解决了这个问题。如果有人好奇的话,我是这样做的
mylist = ['ar', 'an']
filter_list = [Account.first_name.contains(x) for x in mylist]
q = session.query(Account).filter(
or_(
*filter_list
)
)
在SQL中无法做到这一点。它需要一系列
包含过滤器。@TimRoberts您认为可以动态创建一系列包含过滤器吗?我曾尝试使用或
函数为列表中的每个变量包含一个contain
过滤器,但这只在需要一定数量的过滤器时才起作用。