Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按包含列表中的子字符串的字段筛选sqlalchemy查询_Python_Sqlalchemy - Fatal编程技术网

Python 按包含列表中的子字符串的字段筛选sqlalchemy查询

Python 按包含列表中的子字符串的字段筛选sqlalchemy查询,python,sqlalchemy,Python,Sqlalchemy,我正在为我的web应用开发一个高级搜索过滤器,我想知道是否有办法实现这样的过滤器。我需要的是能够指定子字符串列表,然后过滤查询中包含指定列表中任何子字符串的值 账户名称 [夏延, 丹, 弗兰, 莎伦, [凯伦] 过滤器列表=['an','ar'] 后查询 [丹, 弗兰, 莎伦, [凯伦] 因此,在上面的示例中,夏延将被删除,因为该名称不包含“an”或“ar” 我尝试过的 到目前为止,我尝试的是contains和in_u运算符,尽管我不确定如何将两者结合起来_in仅在字符串完全匹配时起作用,而co

我正在为我的web应用开发一个高级搜索过滤器,我想知道是否有办法实现这样的过滤器。我需要的是能够指定子字符串列表,然后过滤查询中包含指定列表中任何子字符串的值

账户名称 [夏延, 丹, 弗兰, 莎伦, [凯伦]

过滤器列表=['an','ar']

后查询 [丹, 弗兰, 莎伦, [凯伦]

因此,在上面的示例中,夏延将被删除,因为该名称不包含“an”或“ar”

我尝试过的 到目前为止,我尝试的是contains和in_u运算符,尽管我不确定如何将两者结合起来_in仅在字符串完全匹配时起作用,而contains一次仅对1个字符串起作用。有什么想法吗

query=session.query(Account).filter(Account.name).in(filter\u列表)


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
过滤器,但这只在需要一定数量的过滤器时才起作用。