Menemukan lokasi terdekat dengan MySQL
Berikut pernyataan SQL yang akan menemukan 20 lokasi terdekat yang berada dalam radius 25 mil dengan 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.
Struktur Tabel :
id,name,address,lat,lng
CATATAN - Di sini lintang =37 &bujur =-122. Jadi, Anda tinggal lulus sendiri.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Anda dapat menemukan detailnya di sini .