Google AppEngine 复杂的 WHERE 条件
我想要设置一个条件,大致是这样的:
- 开始时间小于等于开始时间输入,并且开始时间输入小于等于结束时间
- 或者
- 开始时间小于等于结束时间输入,并且结束时间输入小于等于结束时间
- 或者
- 开始时间输入小于等于开始时间,并且结束时间小于等于结束时间输入
根据文档中提到的两种方法(http://code.google.com/appengine/docs/python/datastore/queries.html 和 http://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 个回答
GQL(Google查询语言)没有“或”这个功能。你可以查看这个链接了解更多:http://code.google.com/appengine/docs/python/datastore/gqlreference.html
所以你需要把这个操作分成多个查询来完成。