2011-08-24 32 views
0

我相信数学运算有限制可以针对GQL执行。以下SQL语句适用于正常的关系数据库系统:GAE + GQL数学运算的局限性

SELECT id, (3959 * acos(cos(radians(lat_t)) * 
cos(radians(lat)) * cos(radians(lng) - radians(lng_t)) 
+ sin(radians(lat_t)) * sin(radians(lat)))) AS distance 
FROM Stores HAVING distance < 25 ORDER BY distance 

有没有人知道如何使用GQL语句执行上述SQL语句?或者至少可以替代在GQL中替换cos,radians,sin等的数学运算?紧急。

回答

2

AppEngine不支持在GQL中使用这种类型的查询。你只能在平等和不平等方面进行简单的选择。

可以效仿的地理搜索使用地理哈希,但是:

http://code.google.com/appengine/articles/geosearch.html

+0

你也不能在查询中选择特定的(计算机或其他)列 - 查询将返回整个实体。 –