4

我不知道这里是否有人问过这个问题。我在“喜欢”运算符上看到了几个问题,但我不确定这是否是我正在寻找的。对不起,我在这方面是个菜鸟。但是我正在从 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 中是否已经有一个可用的查询。

谢谢。

4

1 回答 1

3

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

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

于 2012-08-08T20:41:48.167 回答