我正在对sqlalchemy语句进行一些分析(最终作为模拟实用程序的一部分)。我希望能够将where子句放入规范的顺序,以便我可以比较查询的相等性。
我已经弄清楚如何访问where子句,甚至如何获取子句的排序版本:
sorted(q.whereclause.clauses)
不幸的是,我无法弄清楚如何使用设置顺序中的where子句更新查询(或者,获取新查询)。
请不要建议对数据库执行查询以查看查询是否返回相同的数据。
答案 0 :(得分:1)
事实证明,可以分配给whereclause.clauses
:
q.whereclause.clauses = BooleanClauseList(*sorted(q.whereclause.clauses))