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

Ответить
mkden
Сообщения: 96
Зарегистрирован: 08.05.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
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
ну либо вложенным запросом

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

 SELECT * FROM ( SELECT *, blablabla AS `distance` FROM table ) as tmp_table WHERE `distance` < 1000
либо указывая все выражение в WHERE

Ответить