У меня есть таблица с этой структуройНайти местоположение пересечения на MySQL
(location_name, address, latitude, longitude)
Во-первых, пользователь ввел два месторасположении имя и два радиуса.
Во-вторых, база данных найти широту и долготу о введенном местоположении.
(Здесь и далее, это называется «entered_lat» и «entered_long».)
В-третьих, база данных находит и возвращает местоположения, которые расположены на пересечении двух радиуса, который вошел пользователь.
Когда пользователь ввел только одно местоположение и радиус, я использовал следующий оператор SQL.
SELECT location_name, latitude, longitude,
(6371*acos(cos(radians('entered_lat'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long'))+sin(radians('entered_lat'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius';
Итак, я попытался использовать следующий оператор SQL, чтобы найти пересечение двух радиусов.
SELECT location_name, latitude, longitude,
(6371*acos(cos(radians('entered_lat1'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long1'))+sin(radians('entered_lat1'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius1'
AND
(6371*acos(cos(radians('entered_lat2'))*cos(radians(latitude))*cos(radians(longitude)-
radians('entered_long2'))+sin(radians('entered_lat2'))*sin(radians(latitude))))
AS distance FROM location_table HAVING distance < 'entered_radius2';
Но этот оператор SQL имеет синтаксическую ошибку.
Что я должен делать, чтобы база данных возвращала местоположения, расположенные на пересечении двух радиусов, введенных пользователем?
В сообщении об ошибке говорится: «... рядом» ... »- просьба указать это. –