Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je interroger dans mysql-table (où lat et long sont stockés) quel est l'emplacement le plus proche de l'emplacement saisi (lat et long)?

Je suggérerais de limiter votre emplacement par certaines conditions qui peuvent être indexées. Vous pouvez le faire facilement car vous ne voulez probablement pas lister quelqu'un des États-Unis à quelqu'un à Paris comme emplacement le plus proche.

Avec juste une petite modification sur la requête RustamIS, vous pouvez éliminer la plupart des emplacements non pertinents.

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

Vous avez donc défini un rectangle dans lequel vous souhaitez rechercher les personnes les plus proches.