Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso consultar na tabela mysql (onde lat e long são armazenados) que são o local mais próximo do local inserido (lat e long)?


Sugiro limitar sua localização por algumas condições que podem ser indexadas. Você pode fazer isso facilmente, pois provavelmente não deseja listar alguém dos EUA para alguém em Paris como o local mais próximo.

Com apenas uma pequena modificação na consulta do RustamIS, você pode eliminar a maioria dos locais irrelevantes.
select * from gps_location_table t 
where
    t.x between 20.134554 and 20.334554 and t.y between 56.11455255 and 56.31455255
order by 
    sqrt((t.x - 20.234554)*(t.x - 20.234554) + (t.y - 56.21455255)*(t.y - 56.21455255)
desc

Então você definiu um retângulo onde deseja procurar as pessoas mais próximas.