Sütun takma adımı (lat ve lng) iki alt sorgunun altından mesafe hesaplamasını yapmak için nasıl kullanabilirim? Temel olarak yapmaya çalıştığım şey, boylam ve enlem değerleri kullanılarak iki konum arasındaki mesafeyi hesaplamaktır. Ama bir şekilde benim takma adlarm sorguda kullanılamaz, neden? Eğer bir dize olarak başvurmak gerekir (eğer önce ve sonra tırnak eklemek gerekir) takma adınızı oluşturduktan sonraHesaplamalar için MySQL sütun takma adı nasıl kullanılır?
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
İfadenize neden tırnak ve tırnak koymuyorsunuz? –
Hata olmadan çalışıyor mu, yoksa bu sorguyu yürütürken bazı hatalar alıyor musunuz? – Lion
Sorguyu çalıştırmak için tırnak işaretleri gerekiyor, hata alıyorum ve her şey doğru şekilde döndürülüyor, ancak mesafe hesaplaması tüm kayıtlar için aynı değeri döndürüyor, yani girilen değerler hiçbir şey için kullanılmıyor. Burada neyi yanlış yapıyorum? – Chris