我想从 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"
我想从 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"