आपकी पहली क्वेरी में, मेरा मानना है कि आपने घटाव में देशांतरों को उल्टा कर दिया है। कोसाइन का गोलाकार नियम है:
d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2−long1))*R
यदि lat1 को tblcity.latitude से प्रतिस्थापित किया जाता है, तो long1 को tblcity.longitude से प्रतिस्थापित किया जाना चाहिए। मुझे लगता है कि आपने अपनी क्वेरी में गलती से long2 को प्रतिस्थापित कर दिया है। क्या यह बेहतर काम करता है?
SELECT tblcity.city, tblcity.latitude, tblcity.longitude,
truncate((degrees(acos( sin(radians(tblcity.latitude))
* sin(radians(45.266708))
+ cos(radians(tblcity.latitude))
* cos(radians(45.266708))
* cos(radians(-73.616257 - tblcity.longitude) ) ) )
* 69.09*1.6),1) as distance
FROM tblcity HAVING distance < 10 ORDER BY distance desc
मैंने अभी तक आपकी दूसरी क्वेरी पर ध्यान नहीं दिया है, लेकिन उम्मीद है कि इससे मदद मिलेगी।