我正在尝试进行批量更新,其中我在更新查询中有一个条件。我有一个ID列表,我想用数据库中old_valueif old_valuenotNone中的字符串更新new_value。如果old_value的值为None,我想使用'default_value'字符串
我找不到任何相关的信息,我想可能是一个案例,但我不知道如何格式化查询。
class MyTable(BaseModel):
id = sa.Column(sa.String(256))
new_value = sa.Column(sa.String(256))
old_value = sa.Column(sa.String(256))
LIST_OF_IDS = [1,2,5,6]
update_query = db.session.query(MyTable).filter(MyTable.id.in_(LIST_OF_IDS)) \
.update(dict(new_value=MyTable.old_value if MyTable.old_value else 'default_value'))
1条答案
按热度按时间rqcrx0a61#
你可以使用sqlalchemy
case
结构创建一个update
查询,然后你可以简单地使用session.execute()
。)