gpt4 book ai didi

mysql - 在mysql查询中使用列的值进行计算

转载 作者:行者123 更新时间:2023-11-29 09:17:22 26 4
gpt4 key购买 nike

我有这段代码,它应该(希望)获得与给定位置最接近的结果:

$sql = "SELECT *,
lat as LAT,
long as LONG
FROM mellow_listings
ORDER BY SQRT(((".$long."-LONG)*(".$long."-LONG))
+((".$lat."-LAT)*(".$lat."-LAT))) ASC
LIMIT 0,10";

由于某种原因,它根本不起作用。我认为这是因为我在计算中错误地使用了列名称...

有什么想法吗?

谢谢

最佳答案

我跟你赌一欧元,你在北美洲,那里的半球经度是负数。

尝试将您的纬度和经度值放在括号中。

此外,除了额外的计算之外,SQRT 不会为您带来任何好处。您可以轻松地对平方值进行排序,并获得相同的结果。

ORDER BY ((((".$long.")-LONG) * ((".$long.")-LONG))+
(((".$lat. ")-LAT ) * ((".$lat. ")-LAT )))

这个输入的示例非常适合我本地的美国邮政编码文件。

SELECT * 
FROM ZIP
ORDER BY ((latitude-(42.811261)) * (latitude-(42.811261)))+
((longitude-(-70.877264))*(longitude-(-70.877264)))

此外,您的位置最好不要靠近任何一根柱子或相距超过 15 兆米,否则您使用的这个矩形近似值将会非常惊人地分崩离析。如果它们相距那么远,您将需要使用大圆距离计算公式。

关于mysql - 在mysql查询中使用列的值进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667342/

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