database - GQL 中是否有 OR 运算符?

标签 database google-app-engine gql gqlquery

不知道这里有没有人问过这个问题。我在“like”运算符上看到了几个问题,但我不确定这是否是我正在寻找的。抱歉,我对此一窍不通。但是我正在从 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 中是否已经有可用的查询。

谢谢。

最佳答案

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

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

关于database - GQL 中是否有 OR 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872654/

相关文章:

database - 使用服务名称从 Eclipse 连接到 Oracle Enterprise 11

java - 我数据库中的所有数据都应该是可搜索的——MySQL 与 Lucene

google-app-engine - GAE 应用程序需要创建指向 Google Cloud Storage 的到期签名 URL

google-app-engine - App Engine 在某些请求上静默失败

google-app-engine - GQL:查找包含子字符串的所有实体

python - 如何使用Python删除App Engine数据存储中的None Type对象?

MySQL 访问被拒绝?

database - 如何从转储文件中获取oracle数据库版本

google-app-engine - 带有 Flask 的 Google 应用引擎 : Memorystore/redis produces [Errno 104] Connection reset by peer

google-app-engine - 一个 GQL 查询可以执行两种或多种以上的命令吗?