通过计算的距离获取附近的独特城市

时间:2018-07-25 23:53:33

标签: mysql coordinates

我的表places包含以下列:

| id | name | city | state | lon | lat

这些地点可以位于相同的城市。我正在尝试升级以下查询,以获取附近的独特城市:

SELECT
  id,
  city,
  state,
  (3959 * acos(
      cos(radians(:lat))
      * cos(radians(lat))
      * cos(radians(lon) - radians(:lon))
      + sin(radians(:lat))
        * sin(radians(lat))
  )) AS distance
FROM contact_references
HAVING distance < 50
ORDER BY distance
LIMIT 0, 20;

Group By引发以下错误:

  

[42000] [1055] SELECT列表的表达式#1不在GROUP BY子句中   并包含非聚合列

这需要更改sql_mode。我无法在生产服务器上执行此操作(策略)。

我也不能使用DISTINCT,因为距离不是唯一的。因此,这是我已经一周无法解决的复杂挑战。有没有人建议在哪里挖?

0 个答案:

没有答案