我正在尝试根据一些标准更新用户表中的所有用户。
update = ({"username" : "user1"}, {"address" : "1234", "password" : "newpass"})
users = Table(...)
我正在尝试查询:
users.update().where(**update[0]).values(update[1])
users.select().filter_by(**update[0]).update(update[1])
通过会话,我知道我可以做到:
session.query(Users).filter_by(**update[0])
是否有表格对象的模拟?
答案 0 :(得分:2)
您可以创建where子句列表并将其传递给where()
from sqlalchemy import and_
update = ({"username" : "user1"}, {"address" : "1234", "password" : "newpass"})
where_clauses = [users.c[key]==value for (key, value) in update[0].iteritems()]
users.update().where(and_(*where_clauses)).values(**update[1])