解析错误:符号处的WHERE标识符无效(

时间:2019-06-24 09:34:06

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

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

Route::post('/brief', 'BriefController@showBrief')->name('brief');

但是,使用此GQL脚本时,我在解析时遇到错误。

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脚本出了什么问题。预先感谢

1 个答案:

答案 0 :(得分: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?(也抱怨括号)