sql >> Databáze >  >> RDS >> Mysql

Jak se mohu dotázat v tabulce mysql (kde jsou uloženy zeměpisné šířky a délky), které jsou nejbližší umístění k zadanému umístění (šířka a délka)?

Navrhoval bych omezit vaši polohu některými podmínkami, které lze indexovat. Můžete to udělat snadno, protože pravděpodobně nebudete chtít uvádět jako nejbližší umístění někoho z USA nebo někoho v Paříži.

S malou úpravou dotazu RustamIS můžete eliminovat většinu irelevantních umístění.

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

Takže jste definovali obdélník, kde chcete hledat nejbližší lidi.



  1. Instalace MySQL do Dockeru se nezdaří s chybovou zprávou Nelze se připojit k místnímu serveru MySQL přes soket

  2. MySQL dotaz pro společné přátele

  3. SQL Server Vysoká dostupnost:Přidejte nový disk do existující instance clusteru s podporou převzetí služeb při selhání

  4. seskupit podle hodnot, které nejsou null