Semua jawaban sebelumnya hanya berfungsi untuk 1/4 dunia!
Jawaban W3t Tr3y hampir, tetapi ada kesalahan (tambahan "<").
Semuanya hanya bekerja untuk Amerika Serikat, karena di belahan bumi UTARA. Mereka tidak bekerja untuk belahan bumi selatan, atau negara timur (kanan greenwich).
Inilah solusi sederhana tanpa fungsi atau hal rumit.
huruf adalah hasil dalam urutan yang Anda dapatkan dari map.getBounds() yaitu swlat, swlng, nelat, nelng =a, b, c, d.
SELECT * FROM tilistings WHERE
(CASE WHEN a < c
THEN lat BETWEEN a AND c
ELSE lat BETWEEN c AND a
END)
AND
(CASE WHEN b < d
THEN lng BETWEEN b AND d
ELSE lng BETWEEN d AND b
END)
atau solusi lain dengan dan/atau (Anda dapat menguji kecepatannya, saya tidak tahu cara menjalankannya lebih dari sekali di WorkBench)
SELECT * FROM tilistings WHERE
(a < c AND lat BETWEEN a AND c) OR (c < a AND lat BETWEEN c AND a)
AND
(b < d AND lng BETWEEN b AND d) OR (d < b AND lng BETWEEN d AND b)
Sekarang Anda dapat memetakan seluruh dunia :) Saya harap seseorang dapat menandai jawaban di atas sebagai salah, karena mereka membuat kita kehilangan banyak waktu untuk jutaan orang belajar seperti saya. Saya bertanya-tanya bagaimana mereka mendapatkan begitu banyak suara ketika mereka benar-benar tidak bekerja!
PS:Peluang tepi piksel peta Anda cocok dengan nilai tepat 15 desimal dari koordinat adalah zillion kali lebih kecil daripada peluang kehilangan seluruh 3/4 dunia!