2013-03-29 95 views
2

如果我得到了一個我沒有構造的Query對象,有沒有辦法直接修改它的WHERE子句?我真的希望能夠刪除一些AND語句或替換查詢的整個FROM子句,而不是從頭開始。SQLAlchemy ORM:修改WHERE子句

我知道下面的方法來修改SELECT子句:

Query.with_entities(),Query.add_entities(),Query.add_columns(),Query.select_from()

這我想也會修改FROM。我發現我可以使用Query.where條款查看WHERE子句,但文檔說它是隻讀的。

我意識到我在用SQL的概念來思考,但我現在比ORM更熟悉那些概念。任何幫助非常感謝。

回答

1

你可以直接修改query._where條款,但我會尋求一種方法來解決這個問題 - 無論是生成Query還是應該分解出來,以便非where條款的版本是可用的。

+0

我當然更願意詢問「到目前爲止你在做什麼?」這個查詢,並且重新構建我想從頭開始的部分,但我也不知道該怎麼做。我可以: 'query.whereclause.clauses = [mytable.name.in(['jim','bob'])]' 我跑了一個沒有錯誤的快速測試。這可能會破壞什麼? – jkmacc