Результаты, полученные из MySQL при использовании st_distance_sphere
, кажутся действительно нестабильными.
Выполнение этого запроса в таблице пользователей:
(список пользователей в пределах 9,45 км от точки)
select *, st_distance_sphere(`location`, ST_GeomFromText('point(-74.0104915 45.5576996)')) as distance from `users` having `distance` < 9450
возвращает правильные результаты.
но удаляет 1 метр из радиуса в запросе:
select *, st_distance_sphere(`location`, ST_GeomFromText('point(-74.0104915 45.5576996)')) as distance from `users` having `distance` < 9449
дает мне эту синтаксическую ошибку SQL: #1210 - Incorrect arguments to st_distance_sphere
Я также заметил, что добавление оператора limit
изменяет точку, в которой запрос прерывается, в зависимости от номера лимита.
У кого-нибудь был подобный опыт с запросами такого типа? У меня проблемы с выяснением того, что здесь происходит.
Я использую MySQL 5.7
Спасибо!
Edit:
Дальнейшее тестирование показывает, что запрос отлично работает на небольших наборах (<~ 2-3 тыс. Строк), но начинает выходить за пределы этого, очень странно. </p>