Нет эффективного способа найти расстояние, кроме как методом проб и ошибок.То есть, используя MySQL, вы не можете ранжировать записи по расстоянию от цели, а затем выбрать верхнюю.Лучший способ - выбрать расстояние, которое, по вашему мнению, будет в пределах ближайшей записи.Слишком большое число, и вы получите слишком много записей, слишком маленькое число, и вы не получите никаких.Допустим, вы выбрали 40 единиц.
WHERE xcoord BETWEEN n - 40 AND n + 40 AND ycoord BETWEEN n - 40 AND n + 40
Теперь у вас есть все записи с координатами внутри поля 80 x 80 с вашей целью в качестве центра (поле будет немного перекошено, есливы работаете по широте и долготе, но это не имеет значения).Теперь используйте уравнение Хаверсайна, если вы работаете с широтой и долготой, или Пифагор, если оно просто декартово, чтобы вычислить расстояние между целью и каждой из точек.