Поиск расстояния по координатам в базе?

mkden
Сообщения: 96
Зарегистрирован: 08 май 2010

Код: Выделить всё


SELECT *, ATAN(SQRT(POW(COS(RADIANS(latitude)) * SIN(ABS(RADIANS(-111.8147)-RADIANS(longitude))),2) + POW(
COS(RADIANS(41.692)) * SIN(RADIANS(latitude)) - SIN(RADIANS(41.692))
* COS(RADIANS(latitude))*COS(ABS(RADIANS(-111.8147)-RADIANS(longitude)))
,2))/(SIN(RADIANS(latitude))*SIN(RADIANS(41.692)) +
COS(RADIANS(latitude))*COS(RADIANS(41.692))*
COS(ABS(RADIANS(-111.8147)-RADIANS(longitude))))) * 6373 AS `distance` FROM table WHERE `distance` < 1000



ошибка

Код: Выделить всё

#1054 - Unknown column 'distance' in 'where clause'


конечно поля distance нет в таблице table но есть два поля которые определяют его а именно latitude , longitude

В чем баг не пойму?

-- добавлено 16 мар 2012, 23:03 --

вопрос решен использовал HAVING :)
p.s: В php я нуб!!! )

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
ну либо вложенным запросом

Код: Выделить всё

 SELECT * FROM ( SELECT *, blablabla AS `distance` FROM table ) as tmp_table WHERE `distance` < 1000


либо указывая все выражение в WHERE


Вернуться в «Вопросы по программированию»