У нас есть таблица ресторанов, в которой для каждой строки есть длинные данные.
Нам нужно написать запрос, который выполняет поиск, чтобы найти все рестораны в пределах предусмотренного радиуса, например. 1 миля, 5 миль и т.д.
У нас есть следующий запрос для этой цели:
***Parameters***
Longitude: -74.008680
Latitude: 40.711676
Radius: 1 mile
***Query***
SELECT *
FROM restaurant
WHERE (
POW( ( 69.1 * ( Longitude - -74.008680 ) * cos( 40.711676 / 57.3 ) ) , 2 ) + POW( ( 69.1 * ( Latitude - 40.711676 ) ) , 2 )
) < ( 1 *1 );
В таблице содержится около 23 тыс. строк. Размер набора результатов является странным по времени, например. для поиска в 5,4 мили он возвращает 880 строк и 5,5 миль, он возвращает строки в 21к.
В этой таблице содержатся данные ресторана для nyc - поэтому реальное распределение не соответствует набору результатов.
Вопрос: ТАК ЧТО НЕПРАВИЛЬНО С этим вопросом?
DB: MySQL, долгота: DECIMAL (10,6), Широта: DECIMAL (10,6)