Я хочу получить строки из базы данных MySQL с фильтром рядом и предел расстояния - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу получить строки из базы данных 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"

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете использовать пункт 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"
...