Come posso utilizzare il mio alias di colonna (lat e lng) dalle due sottoquery per eseguire la calcografia della distanza al di sotto? Quello che sto fondamentalmente cercando di fare è calcolare la distanza tra due posizioni usando i valori di longitudine e latitudine. Ma in qualche modo i miei alias non sono utilizzabili nella query, perché?Come utilizzare un alias di colonna MySQL per i calcoli?
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
Perché inserisci lat e lng tra virgolette nella tua espressione? –
Viene eseguito senza errori o si verificano errori durante l'esecuzione di questa query? – Lion
Le virgolette sono necessarie per eseguire la query, non ottengo errori e tutto viene restituito correttamente, tranne che il calcolo della distanza restituisce lo stesso valore per tutti i record, il che significa che i valori immessi non vengono utilizzati per nulla. Cosa sto facendo di sbagliato qui? – Chris