我想从 mysql 数据库中获取行,并按附近和距离限制进行过滤

I want to fetch rows from mysql database with filter by near by and the limit of distance

我想从 MySql 数据库中获取行,并按附近和距离限制进行过滤。我创建了一个可以很好地获取附近数据的查询,但我想添加一个距离限制条件,这意味着如果我想要位置为 20 公里的行。 这是正在为附近工作的查询。

$lat="";
$lon="";
$sql="SELECT *, 
  111.111 *
    DEGREES(ACOS(COS(RADIANS(".$lat."))
         * COS(RADIANS(Lat))
         * COS(RADIANS(".$lon." - Lon))
         + SIN(RADIANS(".$lat."))
         * SIN(RADIANS(Lat)))) AS d
FROM Table
ORDER BY d"

您可以使用 HAVING 子句来实现此目的

$sql="SELECT *, 
  111.111 *
    DEGREES(ACOS(COS(RADIANS(".$lat."))
         * COS(RADIANS(Lat))
         * COS(RADIANS(".$lon." - Lon))
         + SIN(RADIANS(".$lat."))
         * SIN(RADIANS(Lat)))) AS d
FROM Table HAVING d <= 20
ORDER BY d"