在SQL Alchemy中使用连接查询



我试图根据列表中所有字符串的组合获取字符串和查询列表。我想知道这样的事情是否可以在下面做。

def filters(self,filter_company = ["DPL"]):
print "TEST"
        # Company Filter
        company_conj = 1        ## Bitwise 1 with AND will not effect other AND bits
        for c in filter_company:
            company_conj = (company_conj) & (Exception.company == c)            ## Create co

    qrty_exceptions = session.query(Exception).filter(company_conj)         ## Query by conjunction

基本上,我在遍历列表中的每个项目,并试图通过连接来建立一个连接。关键是我不知道列表中会有多少项……但是我想把它们按位逻辑地和在一起,这样它们就形成了连接。我最终得到以下错误:

TypeError: &: 'int'和BinaryExpression不支持的操作数类型

在现实中,我的意思不是使用按位或符号来写这个…"|"但我想如果你能做到这一点,那么它应该为或工作了。

我想下面的例子会对你有所帮助:

from sqlalchemy import or_, and_
company_filters = ["Filter1", "Filter2"]  # as many as you like
clauses = [(Exception.company == c) for c in company_filters]
q = session.query(Exception)
q = q.filter(and_(*clauses))  # or `or_(*clauses)`

相关内容

  • 没有找到相关文章

最新更新