帮助SQL命令

时间:2011-06-20 06:38:09

标签: php mysql

我想使用距离(作为距离)参数来限制此查询的结果。我想将结果限制在距离(距离)<1的记录中。 50.我尝试了一些变体,包括使用WHERE子句(其中距离<50)和ORDER BY(距离<10),这不起作用。提前谢谢。

$query = mysql_query("SELECT *,
(((acos(sin((".$lat."*pi()/180)) * sin((`latitude`*pi()/180))
+cos((".$lat."*pi()/180)) * cos((`latitude`*pi()/180))
* cos(((".$lon."- `longitude`)*pi()/180))))*180/pi())*60*1.1515)
as distance FROM profiles WHERE id!=0 ORDER BY distance < 10 ASC");

这也不起作用

$query = mysql_query("SELECT *,
(((acos(sin((".$lat."*pi()/180)) * sin((`latitude`*pi()/180))
+cos((".$lat."*pi()/180)) * cos((`latitude`*pi()/180))
* cos(((".$lon."- `longitude`)*pi()/180))))*180/pi())*60*1.1515)
as distance FROM profiles WHERE distance < 50 ORDER BY distance ASC");

1 个答案:

答案 0 :(得分:4)

尝试使用HAVING子句:

$ query = mysql_query(“SELECT *, (((acos(sin((“。$ lat。”* pi()/ 180))* sin((latitude * pi()/ 180)) + cos((“。$ lat。”* pi()/ 180))* cos((latitude * pi()/ 180)) * cos(((“。$ lon。” - longitude)* pi()/ 180))))* 180 / pi())* 60 * 1.1515) 作为距离FROM个人资料WHERE id!= 0 HAVING distance&lt; 50“);