Мне нужен запрос в GAE, который возвращает строки, которые не содержат ноль, значит, выполнены - PullRequest
0 голосов
/ 16 марта 2011
SELECT * FROM Feedback WHERE text =! None

Nul, тоже не работает.

Не работает ... Так как мне написать этот запрос?

Ответы [ 3 ]

3 голосов
/ 16 марта 2011

Из документации GAE: невозможно запросить объекты, у которых отсутствует данное свойство.Один из вариантов - создать фиксированное (смоделированное) свойство со значением по умолчанию None, а затем создать фильтр для сущностей с None в качестве значения свойства.

Таких результатов можно достичь с помощью:

def notnulls():
       return [z for z in db.GqlQuery('SELECT * FROM Feedback') if z.text]

Это вернет список объектов Feedback, текстовое поле которых не равно None.Хотя это требует дополнительных затрат на загрузку всех объектов Feedback.

2 голосов
/ 16 марта 2011

Объекты с нулевым значением не включены в индекс для этого запроса. Вы можете вместо этого сохранить фиктивное значение типа «None» / «Null». (Ссылка http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries)

1 голос
/ 16 марта 2011

Попробуйте это:

select * from Feedback where text > ''

Найдена ссылка здесь .Обратите внимание, что это недокументировано, поэтому, возможно, не очень хорошее решение.

...