sql >> Databasteknik >  >> RDS >> Mysql

Hur hittar man närmaste plats med hjälp av latitud och longitud från SQL-databas?

Hitta platser i närheten med MySQL

Här är SQL-satsen som kommer att hitta de närmaste 20 platserna som ligger inom en radie av 25 miles till 37, -122-koordinaten. Den beräknar avståndet baserat på radens latitud/longitud och mållatitud/longitud, och ber sedan om endast rader där avståndsvärdet är mindre än 25, ordnar hela frågan efter avstånd och begränsar den till 20 resultat. För att söka efter kilometer istället för miles, ersätt 3959 med 6371.

Tabellstruktur :

id,name,address,lat,lng

OBS - Här latitud =37 &longitud =-122. Så du klarar bara ditt eget.

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * 
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * 
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;

Du kan hitta information här .



  1. Hur LOWER() fungerar i MariaDB

  2. RDLC LocalReport Export till Excel riktigt långsam

  3. Oracle infoga i tabell2 och ta sedan bort från tabell1, undantag om misslyckas

  4. Följ med mig tisdagen den 9 april för de senaste Microsoft Access-nyheterna