sql >> Databasteknik >  >> RDS >> Mysql

MySQL Great Circle Distance (Haversine-formel)

Från Vanliga frågor om Google Code – Skapa en Store Locator med PHP, MySQL och Google Maps :

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.

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


  1. Hur man upptäcker UTF-8-tecken i en Latin1-kodad kolumn - MySQL

  2. MariaDB SESSION_USER() Förklarad

  3. Hur kan jag använda mySQL replace() för att ersätta strängar i flera poster?

  4. T-sql - bestäm om värdet är heltal