gpt4 book ai didi

mysql - Php MySql 按距离和时间查询

转载 作者:行者123 更新时间:2023-11-30 00:35:52 25 4
gpt4 key购买 nike

我有一个查询,我想为其添加时间搜索。

这是我的工作查询:

$query = "SELECT *,(((acos(sin((".$lat."*pi()/180)) * sin((Lat*pi()/180)) + 
cos((".$lat."*pi()/180)) * cos((Lat*pi()/180)) * cos(((".$lon."- Lon) *
pi()/180))))*180/pi())*60*1.1515) as distance
FROM items
HAVING distance < ".$distance."
ORDER BY distance
LIMIT ".$min." , ".$max."";

我想添加这样的内容

WHERE timestamp > ".$somePastDate."

几个小时以来,我已经尝试了所有我能想到的组合,但没有成功。我打赌它也很简单,我会摇头。提前致谢。

最佳答案

我建议您为此使用嵌套查询,如下所示

 SELECT *, big_cosine_law_distance_formula AS distance
FROM (
SELECT *
FROM items
WHERE items.timestamp > ".$somePastDate."
) AS i
HAVING distance < ".$distance."

内部查询将按时间缩小您的项目范围,因此您不必对所有项目都进行大距离公式的研究。

您还可以考虑使用更快的基于边界框的搜索来缩小项目的空间范围,如此处所述。 http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/

您可以从内部查询开始解决此类问题。

      SELECT *
FROM items
WHERE items.timestamp > ".$somePastDate."

当您从该查询中获得可靠的结果时,请添加外部结果。

关于mysql - Php MySql 按距离和时间查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22186930/

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