Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mySQL y . की सीमा के भीतर x किमी/मील के भीतर ज़िपकोड का चयन करें

आपको Haversine फ़ॉर्मूला नाम की किसी चीज़ का उपयोग करना होगा :

$sql = "
    SELECT zipcode
    FROM zipcodes
    WHERE ".mysqlHaversine($lat, $lon, $distance)."
";

और सूत्र:

function mysqlHaversine($lat = 0, $lon = 0, $distance = 0)
{
    if($distance > 0)
    {
        return ('
        ((6372.797 * (2 *
        ATAN2(
            SQRT(
                SIN(('.($lat*1).' * (PI()/180)-latitude*(PI()/180))/2) *
                SIN(('.($lat*1).' * (PI()/180)-latitude*(PI()/180))/2) +
                COS(latitude * (PI()/180)) *
                COS('.($lat*1).' * (PI()/180)) *
                SIN(('.($lon*1).' * (PI()/180)-longitude*(PI()/180))/2) *
                SIN(('.($lon*1).' * (PI()/180)-longitude*(PI()/180))/2)
                ),
            SQRT(1-(
                SIN(('.($lat*1).' * (PI()/180)-latitude*(PI()/180))/2) *
                SIN(('.($lat*1).' * (PI()/180)-latitude*(PI()/180))/2) +
                COS(latitude * (PI()/180)) *
                COS('.($lat*1).' * (PI()/180)) *
                SIN(('.($lon*1).' * (PI()/180)-longitude*(PI()/180))/2) *
                SIN(('.($lon*1).' * (PI()/180)-longitude*(PI()/180))/2)
            ))
        )
        )) <= '.($distance/1000). ')');
    }

    return '';
}

आमतौर पर मैं यह समझे बिना कोड का उपयोग नहीं करता कि यह पहले कैसे काम करता है, लेकिन मुझे यह स्वीकार करना होगा कि यह फ़ंक्शन मेरे सिर पर थोड़ा सा है...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लिनक्स में MySQL के प्रदर्शन की निगरानी के लिए dbWatch कैसे स्थापित करें

  2. मैं MySQL में टिप्पणियाँ कैसे जोड़ सकता हूँ?

  3. दैनिक पहुंच सीमित करें

  4. MySQL - सशर्त विदेशी कुंजी बाधाएं

  5. MYSQL ऑटो-ट्रिम अक्षम करें