添加几个条件,找到在mysql中附近的地方 - 谷歌地图

问题描述:

我试图用一个解决方案,我对谷歌的文档here添加几个条件,找到在mysql中附近的地方 - 谷歌地图

的问题是我想在搜索

添加一些更多的过滤器找到致富附近的地方

原液

$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20; 

我希望它在上面的语句

SIZE between $firstrange and $secondrange" 
添加此过滤器是什么0

我试过,但没有提供所要求的结果

$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 and SIZE between $firstrange and $secondrange"; 

我在做什么错在这里?我不能通过将AND放在它们之间来添加这些条件吗?

相信你可以使用添加条件和,但你必须将它们添加到您的WHERE或HAVING子句中,而不是在声明的末尾:

SELECT *, 
(3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan )) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance 
FROM " . $table . " 
WHERE SIZE between $firstrange and $secondrange 
HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 ; 

(我想SIZE是在你的表中的列)

+0

谢谢 - 现在正在工作 – Muhammad 2015-02-05 16:06:04