gpt4 book ai didi

SQL - 纬度/经度距离查询 - 如果距离 = 0,则不返回任何内容

转载 作者:行者123 更新时间:2023-11-29 14:56:48 24 4
gpt4 key购买 nike

如果我输入的 $latitude $longitude 值恰好与数据库中存储的值完全匹配,则不会返回任何内容(例如搜索您自己)...我认为是因为距离将为 0。

我正在使用此查询:

SELECT *,
(((acos(sin((".$latitude."*pi()/180)) * sin((`lat`*pi()/180))
+cos((".$latitude."*pi()/180)) * cos((`lat`*pi()/180))
* cos(((".$longitude."- `lng`)*pi()/180))))*180/pi())*60*1.1515)
AS distance
FROM ...

LEFT JOIN ...
ON ...

WHERE 'cat_id' = '$cat_id'

HAVING distance <= $radius
ORDER BY distance ASC

我发现的一个解决方案是通过减少 lat lng 值的小数来降低输入的准确性 - 但这并不是真正的解决方案。

如何更改查询,以便在距离为 0 时仍返回该行?

最佳答案

HAVING 子句正在终止输出。更改查询,使其条件成为 WHERE 的一部分:

...
WHERE 'cat_id' = '$cat_id' AND distance <= $radius

关于SQL - 纬度/经度距离查询 - 如果距离 = 0,则不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com