我有使用正在使用多個過濾器的查詢問題(我使用NDB代替DB):如何過濾Google AppEngine中的多個媒體資源? (蟒蛇)
...
foo = something.query(something.a==5, something.b<8, something.c<3).order(something.b).fetch(1)
...
我收到此錯誤:
Only one inequality filter per query is supported.
我能解決這個問題通過使用這樣的事情:
...
foo = something.query(something.a==5, something.b<8).order(something.b).fetch()
#loop through each one of those rows and add those who have foo.c<3 to some array
,但這種解決方案是不是真的很大。有人有更好的主意嗎?
感謝
聰明。你可以簡化爲:something.query(something.a == 5,something.b <8,something.c.IN([1,2])):你可以免費獲得最高的AND級別,而IN是暗示着相同的財產和不同的價值。但通常情況下,限制本身仍然存在 - 您不能在同一個查詢中的多個屬性上使用<, <=, >,> =或!=。 (!=翻譯成< OR >。) –
雖然這並不解決一般問題 - 如果你想要什麼東西c <100? – user1357607
@GuidovanRossum如果something.c是一個浮點數?就像在這種情況下[多重不平等比較](http://stackoverflow.com/questions/34980755/ndb-multi-inequality-comparision-join-multi-queries-cursors-python-googl)。你能幫我解決這個問題嗎? –