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

Membuat kueri dalam garis bujur dan lintang di MySQL

Anda harus mencari rumus Haversine, tetapi awal yang baik bisa jadi:

Mengutip dari url pertama:

Berikut pernyataan SQL yang akan menemukan 20 lokasi terdekat yang berada dalam radius 25 mil ke koordinat 37, -122. Ini menghitung jarak berdasarkan garis lintang/garis bujur dari baris tersebut dan garis lintang/garis bujur target, dan kemudian hanya meminta baris yang nilai jaraknya kurang dari 25, mengurutkan seluruh kueri berdasarkan jarak, dan membatasinya hingga 20 hasil. Untuk menelusuri menurut kilometer, bukan mil, ganti 3959 dengan 6371.

SELECT
    id,
    ( 3959
      * acos( cos( radians(37) )
              * cos(  radians( lat )   )
              * cos(  radians( lng ) - radians(-122) )
            + sin( radians(37) )
              * sin( radians( lat ) )
            )
    )
    AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengguna tidak dapat mengakses database

  2. Masukkan teks persia di tabel mysql

  3. Memilih semua bidang yang sesuai menggunakan MAX dan GROUP BY

  4. Bagaimana cara menghasilkan cuplikan seperti yang dihasilkan oleh Google dengan PHP dan MySQL?

  5. Mengonversi waktu AM/PM menjadi format 24 jam menggunakan PHP atau MySQL?