sql >> Database >  >> RDS >> Mysql

Hoe kan ik in mysql-tabel (waar lat en lang opgeslagen) de dichtstbijzijnde locatie opvragen bij de ingevoerde locatie (lat en lang)?

Ik zou willen voorstellen om uw locatie te beperken tot enkele voorwaarden die kunnen worden geïndexeerd. U kunt dat gemakkelijk doen, omdat u waarschijnlijk niet iemand uit de VS naar iemand in Parijs wilt vermelden als dichtstbijzijnde locatie.

Met slechts een kleine aanpassing aan de RustamIS-query kunt u de meeste irrelevante locaties elimineren.

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

Dus je hebt een rechthoek gedefinieerd waar je de dichtstbijzijnde mensen wilt zoeken.



  1. Hoe een kolomnaam in SQL te hernoemen?

  2. Hoe maak je een back-up en herstel je een PostgreSQL-database

  3. Hoe een auto-increment-ID toe te voegen volgens een groep in mysql

  4. MYSQL auto_increment_increment