sqlAlchemy动态where子句

时间:2015-04-14 23:23:52

标签: dynamic sqlalchemy where

我有一个字典数组,其中包含每个值的数组。每个字典的值是update where子句的条件。由于dictions中每个数组的长度是可变的,我需要能够动态创建where子句。

我想做类似下面的事情。

sqlAlUpdateList = []
indexHash = [ {1: [1, 6, 11]}, {2: [7, 12]}, {3: [3, 8, 13, 74]} 

for (key, values) in indexHash.iteritems():
  stmt = xtable.update().value(xtable.c.ykey=key).
           where(or_(xtable.c.id == values))
  sqlAlcUpdateList.append(stmt)

for sqlAlcCommand in sqlAlcUpdateList:
  conn.execute(sqlAlcCommand)

我知道这可以分成多个更新命令,但我想创建一个命令。

1 个答案:

答案 0 :(得分:0)

我认为没有理由更喜欢单句。您正在为不同的行分配不同的值,因此我认为它们是分开的操作。但如果有人能纠正我,我想知道该怎么做!