我想知道为什么这个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
不同之处在于,在第二个使用大于“&gt;”的时候。但在第一个使用少于“&lt;”
的时候我想使用facebook放置距离进行分页。
答案 0 :(得分:1)
我找到了解决方案。我这样做的原因是因为我想按距离分页。如果你得到了上一个结果的距离,那么你可以使用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
答案 1 :(得分:0)
您的非工作示例正在尝试从指定的坐标(几乎是地球上的每个地方)获取5KM 或更多的位置 - API根本不会向您返回那么多数据。< / p>
我相信Facebook API支持从一个位置搜索最多50KM