Jak mogę użyć mojego aliasu kolumnowego (łata i lng) z dwóch podkwerend, aby wykonać obliczenia odległości pod spodem? To, co zasadniczo próbuję zrobić, to obliczyć odległość między dwiema lokalizacjami, używając wartości długości i szerokości geograficznej. Ale w jakiś sposób moje aliasy są nieprzydatne w zapytaniu, dlaczego?Jak używać aliasu kolumny MySQL do obliczeń?
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
Dlaczego w wyrażeniu wkładasz lat i lng w cudzysłów? –
Czy działa bez błędów lub czy podczas wykonywania tego zapytania występują błędy? – Lion
Cytaty są potrzebne do uruchomienia zapytania, nie otrzymuję błędów i wszystko jest zwracane poprawnie, z tym że obliczenie odległości zwraca tę samą wartość dla wszystkich rekordów, co oznacza, że wprowadzone wartości nie są używane do niczego. Co ja tu robię źle? – Chris