Как я могу использовать мой псевдоним столбца (lat и lng) из двух подзапросов, чтобы сделать подсчет расстояния ниже? То, что я в основном пытаюсь сделать, это вычислить расстояние между двумя точками, используя значения долготы и широты. Но почему-то мои псевдонимы не могут использоваться в запросе, почему?Как использовать псевдоним столбца MySQL для вычислений?
SELECT wp_posts.*,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID AND wp_postmeta.meta_value LIKE '41.%') AS lat,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID AND wp_postmeta.meta_value LIKE '2.%') AS lng,
(3959 * acos(cos(radians(41.367682)) * cos(radians('lat')) * cos(radians('lng') - radians(2.154077)) + sin(radians(41.367682)) * sin(radians('lat')))) AS distance
FROM wp_posts, wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'position' AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'page' AND wp_posts.post_date < NOW()
GROUP BY ID
ORDER BY distance ASC
Почему вы ставите lat и lng в кавычки в своем выражении? –
Выполняется ли оно без каких-либо ошибок или вы получаете некоторые ошибки при выполнении этого запроса? – Lion
Кавычки необходимы для запуска запроса, я не получаю ошибок и все возвращается правильно, за исключением того, что вычисление расстояния возвращает одно и то же значение для всех записей, что означает, что введенные значения ни для чего не используются. Что я здесь делаю неправильно? – Chris