gpt4 book ai didi

python - 在sqlalchemy中批量更新的where子句中添加多个条件

转载 作者:行者123 更新时间:2023-12-01 01:25:53 60 4
gpt4 key购买 nike

下面的批量更新代码正在运行,其中 benefits_dict 是我的字典列表。

conn.execute(MedicalPlanBenefit.__table__.update()
.where(MedicalPlanBenefit.__table__.c.user_id == bindparam('user_id')),
benefits_dict)

现在,当我像下面这样向 where 子句添加多个条件时,它不起作用。

conn.execute(MedicalPlanBenefit.__table__.update()
.where(MedicalPlanBenefit.__table__.c.user_id == bindparam('user_id') & MedicalPlanBenefit.__table__.c.test_id == bindparam('test_id')),
benefits_dict)

在这种情况下如何添加多个条件?

我的benefits_dict:

{'user_id': 1, 'email_address' : 'jack@yahoo.com', 'id':12, 'test_id': 31},
{'user_id': 1, 'email_address' : 'jack@msn.com', 'id':13, 'test_id': 31},
{'user_id': 2, 'email_address' : 'www@www.org', 'id':14, 'test_id': 31},
{'user_id': 2, 'email_address' : 'wendy@aol.com', 'id':15, 'test_id': 31}

最佳答案

您可以将 where 子句链接在一起,也可以使用 and_ 运算符将多个条件添加到 where 子句(请务必导入 and_来自 sqlalchemy.sql 的 > 运算符)。请参阅Conjunctions in the SQLAlchemy Expression Language Tutorial 。例如:

# Using and_ operator
where(
and_(
table.c.id == 'id',
table.c.name == 'name'
)
)

# chaining where clauses
where(table.c.id == 'id').\
where(table.c.name == 'name')

关于python - 在sqlalchemy中批量更新的where子句中添加多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337722/

60 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com