我想知道为什么此FQL查询不起作用
SELECT page_id, name,type, distance(latitude, longitude, "37.7873589", "-122.408227") FROM place WHERE type="PLACE" AND 5000 < distance(latitude, longitude, "37.7873589", "-122.408227") ORDER BY distance(latitude, longitude, "37.7873589", "-122.408227") ASC LIMIT 10
但是这个起作用
SELECT page_id, name,type, distance(latitude, longitude, "37.7873589", "-122.408227") FROM place WHERE type="PLACE" AND 5000 > distance(latitude, longitude, "37.7873589", "-122.408227") ORDER BY distance(latitude, longitude, "37.7873589", "-122.408227") ASC LIMIT 10
区别在于,在第二个中,使用大于">"。但是在第一个中,我使用的是少于"&lt;"
我想使用Facebook Place距离分页。
我发现了一个解决方案。我这样做的原因是因为我想以远距离为单位。如果您获得了最后一个结果的距离,则可以使用Not()将下一个结果分页,以排除这样的5000米中的任何内容:
:SELECT page_id, name,type, distance(latitude, longitude, "37.7873589", "-122.408227") FROM place WHERE type="PLACE" AND distance(latitude, longitude, "37.7873589", "-122.408227") < 50000 AND NOT (page_id IN( SELECT page_id FROM place WHERE distance(latitude, longitude, "37.7873589", "-122.408227") < 5000 )) ORDER BY distance(latitude, longitude, "37.7873589", "-122.408227") ASC
您的非工作示例试图从指定的坐标中获取5km 或更多,这几乎是地球上的每个地方 - API根本不会将这么多数据退还给您。
我相信Facebook API最多支持从位置搜索