Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Meminta MySQL untuk koordinat lintang dan bujur yang berada dalam radius mil tertentu

Rumus Hukum Bulat Kosinus
(37 dan -122 adalah garis lintang dan bujur dari pusat radius Anda)

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) 
    * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance 
FROM myTable
HAVING distance < 50
ORDER BY distance 

Fitur

  • Tercepat
  • Presisi mirip dengan Formula Harvesine

Formula Haversine

SELECT id, 3959 * 2 * ASIN(SQRT(POWER(SIN((37 - abs(lat)) * pi()/180 / 2), 2)
       + COS(37 * pi()/180 ) * COS(abs(lat) * pi()/180)
       * POWER(SIN((-122 - long) * pi()/180 / 2), 2) )) as  distance
FROM myTable
HAVING distance < 50
ORDER BY distance

Fitur

  • Cepat
  • Lebih kuat untuk kesalahan floating point

Perhatikan bahwa 3959 adalah radius Bumi dalam mil . Jari-jari bumi dalam kilometer (km):6371

Anda dapat menemukan informasi lebih lanjut di sini




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. enkode base64 di MySQL

  2. Bagaimana menghindari Kondisi Balap Mysql dengan benar

  3. MySQL Menghitung nilai yang berbeda dari satu kolom

  4. Bagaimana cara memperbarui kolom tipe data JSON di MySQL 5.7.10?

  5. Bagaimana cara memeriksa pengaturan InnoDB saya?