Google AppEngine 复杂的 WHERE 条件

1 投票
1 回答
776 浏览
提问于 2025-04-16 18:06

我想要设置一个条件,大致是这样的:

  • 开始时间小于等于开始时间输入,并且开始时间输入小于等于结束时间
  • 或者
  • 开始时间小于等于结束时间输入,并且结束时间输入小于等于结束时间
  • 或者
  • 开始时间输入小于等于开始时间,并且结束时间小于等于结束时间输入

根据文档中提到的两种方法(http://code.google.com/appengine/docs/python/datastore/queries.htmlhttp://code.google.com/appengine/docs/python/datastore/gqlqueryclass.html),我理解的写法是:

filter_trips = db.GqlQuery("SELECT key FROM Trips WHERE (开始时间小于等于:开始时间输入 AND 结束时间大于等于:开始时间输入) OR (开始时间小于等于:结束时间输入 AND 结束时间大于等于:结束时间输入) OR (开始时间大于等于:开始时间输入 AND 结束时间小于等于:结束时间输入)", 开始时间输入=开始时间输入, 结束时间输入=结束时间输入)

但是出现了错误:解析错误:在符号(处的无效WHERE标识符

或者

filter_trips = db.GqlQuery("SELECT key FROM Trips WHERE 开始时间小于等于:开始时间输入小于等于结束时间 OR 开始时间小于等于:结束时间输入小于等于结束时间 OR (:开始时间输入小于等于开始时间 AND 结束时间小于等于:结束时间输入)", 开始时间输入=开始时间输入, 结束时间输入=结束时间输入)

但是出现了错误:解析错误:在符号小于等于处预期没有其他符号

请帮帮我!

1 个回答

3

GQL(Google查询语言)没有“或”这个功能。你可以查看这个链接了解更多:http://code.google.com/appengine/docs/python/datastore/gqlreference.html

所以你需要把这个操作分成多个查询来完成。

撰写回答