sql >> Database teknologi >  >> RDS >> Mysql

Få resultater fra mysql baseret på længdegrad

Du kan beregne en afstand ved hjælp af en sfærisk cosinuslov :

SELECT DEGREES(ACOS(SIN(RADIANS(clients.latitude)) * SIN(RADIANS(schools.latitude)) + COS(RADIANS(clients.latitude)) * COS(RADIANS(schools.latitude)) * COS(RADIANS(clients.longitude – schools.longitude)))) * 60 * 1.1515 * 1.609344 AS distance FROM clients, schools HAVING distance < $radius

RADIANS(X) - grader til radianer
ACOS(X ) - buen cosinus af X, det vil sige værdien hvis cosinus er X
GRADER(X) - radianer til grader

60 - minutter i en grad
1,1515 - miles i en sømile
1,609344 - kilometer i en mile




  1. Hvornår skal jeg bruge Start/End Blocks og Go nøgleordet i SQL Server?

  2. Dvale Opret kriterier for at slutte sig til den samme tabel to gange - prøvet 2 tilgang med 2 forskelsfejl

  3. Hvordan bruger man det modsatte af BETWEEN i en MySQL-forespørgsel?

  4. MySQL række i antal kolonner og sum