我刚刚发现如果你在同一个查询中两次在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()
。