如何在GQL [Google App引擎]中执行此查询?

时间:2015-11-10 05:09:29

标签: google-app-engine gql gqlquery

我有一个项目表,其中两个列为'language'和'tag'。

用户提供input后,我想输出languageinputtaginput的所有项目。

上面的SQL查询就是这个,

  

Sql查询:Select * from TableName where language='input' OR tag='input'

我试图在Gql中执行相同但是徒劳无功。 Gql中的查询应该以上述方式输出数据。

2 个答案:

答案 0 :(得分:1)

GQL没有OR,所以基本上你必须做两个单独的查询和联合结果:

Select * from TableName where language='input'
Select * from TableName where tag='input'

您应该在应用端加入结果,Cloud Console也不支持此类内容。

请参阅GQL参考:https://cloud.google.com/datastore/docs/apis/gql/gql_reference

答案 1 :(得分:1)

我不知道您是否必须使用GQL,但是如果您能够避免使用GQL,则可以使用ndb过滤器。

results = TableName.query(ndb.OR(TableName.language == 'input',
                       TableName.tag == 'input'))
for result in results: 
    ....your code here...

更多信息请参阅:https://cloud.google.com/appengine/docs/python/ndb/queries