Mencari Pangkalan Data untuk Keputusan dalam Jejari Bertindih
Masalah:
Dalam pangkalan data dengan geografi data, anda ingin memilih hasil yang bertindih sebahagiannya berbilang penanda bulat dengan jejari yang ditentukan. Pertanyaan SQL sedia ada tidak mengenal pasti dengan tepat hasil yang bertindih berbilang penanda.
Penyelesaian:
Untuk hasil yang tepat, pernyataan SQL berikut boleh digunakan:
<code class="sql">SELECT A.user_id, A.radius_id, A.latitude, A.logitude FROM UserA AS A, (SELECT user_id, latitude, longitude FROM UserB WHERE user_id = 8) AS B WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12*cos(A.latitude), 2)) <= 4</code>
Penjelasan:
Pertanyaan ini menggunakan persamaan bulatan untuk menentukan sama ada titik tertentu (dari UserA) berada dalam jejari bulatan (ditakrifkan oleh latitud dan longitud jejari daripada UserB). Langkah-langkah berikut terlibat:
Dengan menggunakan pertanyaan ini, anda boleh mengenal pasti dengan tepat hasil yang bertindih berbilang penanda bulat, walaupun bulatan bersentuhan antara satu sama lain.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Pangkalan Data untuk Keputusan Bertindih Berbilang Penanda Pekeliling dengan Jejari Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!