मैंने अभी PHP के साथ MySQL का उपयोग करना शुरू कर दिया है और मैं जानना चाहता हूं कि कस्टम फ़ंक्शन बनाना संभव है या नहीं। इस कोड स्निपेट को यह स्पष्ट करना चाहिए कि मैं क्या करने की कोशिश कर रहा हूं।एक कस्टम MySQL फ़ंक्शन बनाना?
// a somewhat complicated formula not suitable to embed into the query
function Distance($latA, $lonA, $latB, $lonB)
{
// earth's radius
$radius = 3956;
$latA = deg2rad($latA);
$lonA = deg2rad($lonA);
$latB = deg2rad($latB);
$lonB = deg2rad($lonB);
// calculate deltas
$deltaLat = $latB - $latA;
$deltaLon = $lonB - $lonA;
// calculate Great Circle distance
$result = pow(sin($deltaLatitude/2.0), 2) + (cos($latA) * cos($latB) * pow(sin($deltaLon/2.0), 2));
$distance = $radius * 2 * atan2(sqrt($result), sqrt(1 - $result));
return $distance;
}
// how can I call Distance() in my query?
$query = "SELECT lat, lon FROM zipcodes WHERE Distance(lat, lon, 0, 0) < 20";
mysql_query($query);
किसी भी मदद के लिए अग्रिम धन्यवाद!
बस FYI करें, आपको लगता है कि पूरी तरह से एक प्रश्न से लगता है कर सकते हैं। वास्तव में, यदि आप अपने अक्षांश/एलएनजी के आधार पर एक स्थानिक सूचकांक का उपयोग करते हैं और आप पाएंगे कि परिणाम प्रभावशाली हैं। अविश्वसनीय तथ्य। – Layke
मुझे यकीन नहीं है कि आपका क्या मतलब है, क्या आप इस पर विस्तृत जानकारी दे सकते हैं? इसके अलावा "अनुपयुक्त" से मेरा प्रदर्शन प्रदर्शन के संदर्भ में नहीं था (मुझे इसके बारे में कुछ नहीं पता है); मेरा मतलब था कि क्वेरी कितनी दर्दनाक होगी। –