【问题标题】:Simple App Engine Query Invalid简单的 App Engine 查询无效
【发布时间】:2026-01-12 08:45:01
【问题描述】:

通过这个看似微不足道的 GQL 查询,我得到一个“无效的 GQL 查询字符串”:

SELECT * FROM Event WHERE firstPlayer='glowingEthers' OR secondPlayer='glowingEthers'

删除 OR 子句后,对于任一属性,它都可以正常工作。 Event 表的这些属性是互斥的(没有事件将 firstPlayer 和 secondPlayer 设置为同一个玩家)。有什么想法吗?

【问题讨论】:

    标签: google-app-engine gql gqlquery


    【解决方案1】:

    GQL 没有OR 运算符(如here 所述)。由于您已声明结果集是互斥的,因此您应该执行两个查询(一个用于 firstPlayer,一个用于 secondPlayer)并自己加入它们。

    【讨论】:

      【解决方案2】:

      也许这会有所帮助(只知道 mySQL)...

      SELECT * 
      FROM Event 
      WHERE 1 
      AND (firstPlayer='glowingEthers' OR secondPlayer='glowingEthers')
      

      【讨论】:

      • OP 正在使用 GQL,一个常见的陷阱是假设 SQL 可以在这里工作。在大多数情况下它不会