如何從兩個子查詢中使用我的列別名(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放在你的表情中? – 2011-12-30 15:03:40
它是否運行沒有任何錯誤或執行此查詢時是否出現一些錯誤? – Lion 2011-12-30 15:11:38
需要引號才能運行查詢,我不會收到任何錯誤,並且所有內容都可以正確返回,但距離計算會爲所有記錄返回相同的值,這意味着輸入的值不會用於任何內容。我在這裏做錯了什麼? – Chris 2011-12-30 15:42:10