【问题标题】:How compare two fields in GQL如何比较 GQL 中的两个字段
【发布时间】:2013-10-01 08:52:14
【问题描述】:

我不知道如何比较 GQL 中的两个字段或属性。

我使用 python sdk 并且我有一个对象“房间”,这个对象有两个属性一个是“用户 1”,另一个是“用户 2”所以,我需要检查用户是否在房间内连接.我想像这样在 GQL 中做类似 SQL 的事情

SELECT * FROM ROOM WHERE user1 = 'joe' or user2 = 'joe'

但我不知道没有 OR 怎么办,因为 GQL 不适用于 OR 运算符。

如果有人能举一个简单的例子说明我是如何做到的,我将不胜感激。

谢谢。

【问题讨论】:

  • 是否需要检查user1 == user2?在这种情况下,使用另一个预先计算的属性进行过滤。非规范化在 gae 数据存储上非常有用。比如 is_connected = ndb.ComputedProperty(lambda self: self.user1 == self.user2)

标签: google-app-engine gql


【解决方案1】:

旧的 Python 数据存储 API(包括 GQL)不支持 OR 查询。新的 NDP API 执行 support AND and OR queries

请注意,OR 查询不是数据存储本地的:NDB API 将发出多个查询,然后将它们组合到内存中以获得结果。

在 GQL 中,通过运行两个查询(每个条件一个查询,然后组合结果)可以获得等效结果。

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多