问题:查找最靠近的酒吧,提供我正在寻找的饮料。
在这里,您可以找到生成的MySQL代码http://pastebin.com/5Uc2ewUW
与此问题交互的API请求将具有以下参数
query, String, ideally the drink name
lng, double, the starting longitude
lat, double, the starting latitude
range, integer, max distance in meters (with a default value)
查询参数可以选择多种饮料(比如搜索"伏特加")。
编写具有良好性能的SQL查询的好策略是什么?
我不是很专业,但我的想法是:
- 在范围内选择酒吧
- 从drink__bars中选择bar_id在前面选择结果中的结果
- 连接饮料表以获取饮料数据
如何根据距离设置顺序?
任何建议都将不胜感激!
编辑:感谢到目前为止的回答,但它们主要集中在计算距离上,这已经涵盖了。我不知道如何基于我从酒吧得到的距离对结果(即饮料)进行排序。
像这样的元查询
SELECT drink.id, drink.name
FROM $DATA_POOL
WHERE drink.name LIKE '%MY_QUERY%'
ORDER BY $ORDER
这里是
$DATA_POOL
= 附近酒吧提供的饮品子集(我已经可以计算出哪些酒吧在我附近)$ORDER
= 基于 API 参数lng
和lat
,表示我与酒吧之间的距离