我尝试用我附近的位置列表进行MySQL查询(以最近的位置排序)。我不知道该怎么做。我找到了这篇有趣的帖子:http://funkjedi.com/technology/308-search-using-geolocation-data-in-mysql/
一切都清晰地告诉我。但查询不起作用。我做了以下SQL查询:
SELECT *, ($distance_formula) AS distance FROM restaurants
WHERE (geolatitude BETWEEN $lat_b1 AND $lat_b2)
AND (geolongitude BETWEEN $lng_b1 AND $lng_b2)
HAVING distance < $radius ORDER BY distance ASC
我得到的错误如下:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column '$distance_formula' in 'field list'
关键是,$ distance_formula是在脚本中创建的,而不是字段列表,这是正确的。但是我应该如何做到这一点,MySQL知道这是执行而且它不是一个字段?
如果您有任何其他帮助或其他解决方案(来自绿色),我会非常高兴。最后,我需要一个cakephp的解决方案。
非常感谢
伊沃
答案 0 :(得分:0)
我认为必须存在windows和unix格式文件的错误,或者有时候这个例子有一些写入问题,因此请求你稍微更改命令并将命令写为:
$sql = "SELECT *, (" . $distance_formula . ") AS distance FROM listings WHERE (latitude BETWEEN " . $lat_b1 . " AND " . $lat_b2 . ") AND ( longitude BETWEEN " . $lng_b1 . " AND . " $lng_b2 . ") HAVING distance < " . $radius . "ORDER BY distance ASC";