SQLAlchemy db.text()。bindparams()没有clobbering

时间:2015-01-24 02:21:12

标签: sqlalchemy

我刚刚发现如果你在同一个查询中两次在bindparams中使用相同的名字,那么第二个值就会破坏第一个值。一个人为的例子:

db.session.query(MyTable).filter(
    db.or_(
        db.text("my_table.field = :value").bindparams(value=value1),
        db.text("my_table.field = :value").bindparams(value=value2),
    )
)

在这里,您只能使用value2获取内容。 value1不会出现在查询中。

是否有通用的方法来解决这个问题?

我的真实查询中的Btw,db.text()位访问嵌套的jsonb属性,所以请不要回答告诉我只使用此查询中的列对象代替db.text()

0 个答案:

没有答案