You could use the geospatial extensions for MySQL, or
The formula below will find the distance in nautical miles between two points.
3600 * acos(sin(latitude2_rads)
* sin(latitude1_rads) +cos(latitude2_rads)
* cos(latitude1_rads)
* cos(longitude1_rads - longitude2_rads))
So you can connect this into a select as follows (in the following -7 is the required lat and -14 is the required lon)
Assuming that the lat/lon fields are in degrees:
select * FROM NDB as c1
order by acos(sin(radians(-7))
* sin(radians(latitude)) + cos(radians(-7))
* cos(radians(latitude))
* cos(radians(longitude) - radians(-14)))
limit 0,1
This may not be very efficient with large datasets, I just ran it against a table with 22,706 records and it took 0.163seconds.
If performance is an issue then it may be better to pre-compute the distance of all points from a fixed datum and then use that instead of computing it in the SQL.