我的table 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]选择列表的表达式#1不在group by子句中,并且包含未聚合的列
这需要改变现状 `sql_mode` . 我不能在生产服务器上这样做(策略)。
我也不能用 `DISTINCT` 因为距离不是唯一的。所以,这是一个复杂的挑战,我已经一个星期没法解决了。有人建议在哪里挖吗?
暂无答案!
目前还没有任何答案,快来回答吧!