¿Cómo puedo usar mi alias de columna (lat y lng) de las dos subconsultas para hacer la calcu- lación de distancia debajo? Lo que básicamente trato de hacer es calcular la distancia entre dos ubicaciones usando valores de longitud y latitud. Pero de alguna manera mis alias no son utilizables en la consulta, ¿por qué?¿Cómo usar un alias de columna MySQL para los cálculos?
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
¿Por qué pones lat y lng entre comillas en tu expresión? –
¿Se ejecuta sin ningún error o se producen algunos errores al ejecutar esta consulta? – Lion
Las comillas son necesarias para ejecutar la consulta, no obtengo errores y todo se devuelve correctamente, excepto que el cálculo de la distancia arroja el mismo valor para todos los registros, lo que significa que los valores ingresados no se utilizan para nada. ¿Qué estoy haciendo mal aquí? – Chris