0

我尝试使用我附近的位置列表进行 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 的解决方案。

非常感谢

伊沃

4

1 回答 1

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";
于 2013-02-16T15:24:19.707 回答