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

kueri bujur dan lintang mySQL untuk baris lain dalam radius x mil

Berikut adalah kueri yang saya gunakan di pencari lokasi toko tempat saya bekerja:

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25

:lat dan :long adalah titik yang dilewati oleh pengguna di mana lat dan long adalah poin yang disimpan dalam database.

:distance diukur dalam mil, dalam versi kode yang berfungsi :distance sebenarnya ditarik dari drop down mulai dari 10-50 mil

Mengubah kode untuk bekerja dengan kilometer dapat dilakukan dengan mengubah 3959 (jarak dari pusat bumi ke permukaannya dalam mil) menjadi 6371 (3959 mil dikonversi ke kilometer) berkat joshendo untuk solusi itu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Bulan dari Tanggal di MySQL

  2. kueri pemilihan mysql dalam array serial

  3. Instal Web Server di Windows XP dengan Apache2, PHP5 dan MySQL4 – Bagian 1

  4. meneruskan LIMIT sebagai parameter ke MySQL sproc

  5. Cara Mengubah Ukuran Kolom di MySQL