У меня есть таблица пользователей, которую я хочу, чтобы другие пользователи могли искать друг друга по имени. Как правило, это легко до определенной степени. Однако я хочу, чтобы пользователи с похожими именами отображались в порядке близости друг от друга, поэтому давайте скажем, что я ищу "Майк", но не знаю его фамилию. Я хочу, чтобы мои результаты отображались " Майк "находится в моей базе данных, начиная с ближайшего. У меня есть долгота / широта для всех моих пользователей, так что это не проблема, проблема в том, как мой запрос строится в настоящее время, и я должен предоставить определенный диапазон. Поэтому я пытаюсь выяснить, есть ли другой способ, которым я могу построить запрос, чтобы не указывать диапазон, поэтому он просто пойдет от ближайшего к дальнему.
Текущий запрос выглядит как
SELECT *,(((acos(sin(($lat*pi()/180)) * sin((`latitude`*pi()/180))+cos(($lat*pi()/180)) * cos((`latitude`*pi()/180)) * cos((($lon - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` FROM `memb_geo_locations` HAVING `distance` < $range ORDER BY `distance` ASC"
С другой стороны, мне, вероятно, придется сформировать ВНУТРЕННЕЕ СОЕДИНЕНИЕ, так как имена, которые я буду искать, находятся в другой таблице. где member_id является ссылкой между двумя таблицами. другой стол будет иметь
member_id, имя, фамилия
географическая таблица имеет
member_id, долгота, широта, первичная
Есть идеи?