Obtenga resultados de mysql en función de la longitud de latitud

Tengo una base de datos MySQL y 2 tablas, digamos clientes y escuelas. Ahora cada tabla tiene columnas de latitud y longitud. Y necesito hacer un SELECCIONAR, por ejemplo, de la segunda tabla, donde las escuelas se encuentran en un radio dado de un registro de la primera tabla. Los cálculos deben hacerse en función de la latitud y la longitud. PD: estoy usando PHP.

Puede calcular una distancia usando una ley esférica de cosenos :

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 

RADIOS (X) - grados a radianes
ACOS (X) - el arco coseno de X, es decir, el valor cuyo coseno es X
GRADOS (X) - radianes a grados

60 minutos en un grado
1.1515 - millas en una milla náutica
1.609344 - kilómetros en una milla