GQL中是否有OR运算符?

时间:2012-08-08 20:29:56

标签: database google-app-engine gql gqlquery

我不知道这里是否有人问过这个问题。我在“喜欢”操作符上看到了几个问题,但我不确定我是否正在寻找。对不起,我是个菜鸟。但我正在从MySQL迁移到Google App Engine,并想知道GQL中是否存在类似于MySQL中的OR运算符。

基本上我想要实现的是通过用户名或电子邮件地址登录名称。所以我的查询就是这样的。

query = db.GqlQuery("SELECT * FROM mytable 
                     where username = :name 
                     OR email = :email 
                     AND password = :password",
                     name = user,
                     email = email,
                     password = pass1)

我意识到我可以执行两个查询并检查每个查询是否成功完成并且能够实现此目的但我只是想知道GQL中是否已有一个可用。

感谢。

1 个答案:

答案 0 :(得分:2)

OR无法GQL;它仅支持IN您可以将OR视为特定属性的有限形式 就像你已经说过的那样,你唯一的选择是执行两个不同的查询并结合结果。

如果您选择的语言是Java,请查看Query.CompositeFilter,您可以使用OR运算符构建过滤器。