Php MySql按距离和时间查询
我有一个要添加时间搜索的查询 以下是我的工作查询:Php MySql按距离和时间查询,mysql,Mysql,我有一个要添加时间搜索的查询 以下是我的工作查询: $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
$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."";
几个小时以来,我一直在尝试我能想到的所有组合,但运气不佳。我打赌这也很简单,我会摇头的。提前感谢。我建议您对此使用嵌套查询,如下所示
SELECT *, big_cosine_law_distance_formula AS distance
FROM (
SELECT *
FROM items
WHERE items.timestamp > ".$somePastDate."
) AS i
HAVING distance < ".$distance."
当您从该查询中获得可靠结果时,请添加外部结果。那么问题出在哪里
WHERE now()>'2014-01-01'
效果很好……哦,对不起,时间戳是我自己命名和更新的列,不是由mysql自动更新的。如果它是msyql日期/日期时间字段,那么就用它的名称而不是now()
。谢谢,我喜欢不为每个人计算的想法。现在试着让它工作,但没有任何项目显示仍然是的,我只是在做,我必须有一个问题,我的时间变量,即使它的回声正确。基本上,我不想显示超过31天的项目,所以它总是离当前时间31天。MySql在我为过去制作的时间戳的H:I:s部分上有错误。我删除了它,它现在显示的项目,但并没有限制他们实际上由日期是我的问题,小时分钟和秒。我无法在timestamp变量中使用它们获得任何输出,并且当它被删除时,我没有得到任何限制。但我真的很喜欢你的答案,并且会比我预期的更好,当我最终发现这个H:I:s部分OUTEN时,即使它不起作用,但仍然显示所有SELECT*FROM项目,其中DATE_SUB(CURDATE(),INTERVAL 31 DAY)
SELECT *, big_cosine_law_distance_formula AS distance
FROM (
SELECT *
FROM items
WHERE items.timestamp > ".$somePastDate."
) AS i
HAVING distance < ".$distance."
SELECT *
FROM items
WHERE items.timestamp > ".$somePastDate."