как реализовать это в GQL (Google Query Language) - PullRequest
2 голосов
/ 09 июля 2009

В MySQL это выглядит так:

выберите * из таблицы1, где столбец1 в («a», «b», «c»);

как это сделать в GQL?

Ответы [ 3 ]

5 голосов
/ 09 июля 2009
4 голосов
/ 09 июля 2009

Вы можете использовать один из следующих

  result = db.GqlQuery("Select __key__ from model where column in ('a','b','c')")

или

   result = db.GqlQuery("Select * from model where column in ('a','b','c')")

Вызов с _ _ ключом _ _ намного эффективнее, чем вызов * в appengine. Для этого он использует меньше вызовов хранилища данных и меньше ресурсов ЦП.

1 голос
/ 09 июля 2009

Точно так же, как вы описали, он работает нормально - но будьте осторожны, запросы IN реализованы в Python API и транслируются в несколько базовых запросов хранилища данных. Если есть другой способ получения данных, я настоятельно рекомендую использовать его вместо этого.

...