Как получить расстояние в 5 км, когда im дает текущую широту и долготу в SQL

63
6

Этот запрос работает нормально или нет? любая помощь для выполнения этого запроса, я хочу 5km окружающих значений, когда я даю curent latittide и долготу

SELECT
id, (
3959 * acos (
cos ( radians(12.966958) )
* cos( radians( latitude ) )
* cos( radians( longitude ) - radians(80.1525835) )
+ sin ( radians(12.966958) )
* sin( radians( latitude ) )
)
) AS distance
FROM place
HAVING distance < 5 ORDER BY distance

спросил(а) 2021-01-25T18:19:23+03:00 5 месяцев назад
1
Решение
63

HAVING используется только тогда, когда вы хотите фильтровать результаты после функции агрегации. Здесь вы должны использовать WHERE.

Также,

Стандартный SQL запрещает ссылки на псевдонимы столбцов в предложении WHERE. Это ограничение наложено, потому что, когда вычисляется предложение WHERE, значение столбца может еще не определено.

SELECT id, distance FROM(
SELECT
id, (
3959 * acos (
cos ( radians(12.966958) )
* cos( radians( latitude ) )
* cos( radians( longitude ) - radians(80.1525835) )
+ sin ( radians(12.966958) )
* sin( radians( latitude ) )
)
) AS distance
FROM place) tmp
WHERE tmp.distance >5
ORDER by distance

ответил(а) 2021-01-25T18:19:23+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема