【问题标题】:Parse Error: Invalid WHERE Identifier at symbol (解析错误:符号处的 WHERE 标识符无效 (
【发布时间】:2019-11-06 02:12:14
【问题描述】:

我正在尝试使用可选参数获得结果。

result = Tester.gql("WHERE (first_name IS NULL OR first_name = :first_name)"
                                "AND (last_name IS NULL OR last_name = :last_name)"
                                "AND (birth_date IS NULL OR birth_date = :birth_date)"
                                "AND (test_voucher IS NULL OR test_voucher = :test_voucher)", first_name=first_name,
                                last_name=last_name, birth_date=birth_date, test_voucher=test_voucher)

但是,当我使用这个 GQL 脚本时,我收到了一个关于解析的错误。

{
    "error": {
        "message": "Parse Error: Invalid WHERE Identifier at symbol ("
    }
}

我正试图找出我的 GQL 脚本有什么问题。提前致谢

【问题讨论】:

    标签: python-2.7 google-cloud-platform google-cloud-datastore gql


    【解决方案1】:

    我认为这不是有效的 GQL:

    • 没有提到将 '(' 和 ')' 用于复合条件(我相信您看到的错误是关于),唯一有效的条件构造是(来自 GQL Reference):

      [ WHERE <compound-condition> ]
      
      <compound-condition> := <condition>+AND
      
      <condition> :=
        <property-name> IS NULL
      | <property-name> <forward-comparator> <value>
      | <value> <backward-comparator> <property-name>
      
    • GQL 中没有OR 运算符,所以不需要分组,见In Google DataStore GQL, how can I group the WHERE terms?(也抱怨括号)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多