You just need use following query.
For example, you have input latitude and longitude 37 and -122 in degrees. And you want to search for users within 25 miles from current given latitude and longitude.
SELECT item1, item2,
( 3959 * acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng )
- radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
) AS distance
FROM geocodeTable
HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;
If you want search distance in kms, then replace 3959 with 6371 in above query.
You can also do this like:
-
Select all Latitude and longitude
-
Then calculate the distance for each record.
-
The above process can be done with multiple redirection.
For optimizing query you can use Stored Procedure.
And this can also help you.