Secara umum bukanlah ide yang baik untuk membandingkan angka floating point dengan =
sama dengan operator.
Untuk aplikasi Anda, Anda perlu mempertimbangkan seberapa dekat Anda menginginkan jawabannya.
1 derajat sekitar 112km, dan 0,00001 derajat sekitar 1,1 meter (di khatulistiwa). Apakah Anda benar-benar ingin aplikasi Anda mengatakan "tidak sama" jika dua titik berbeda 0,00000001 derajat =1mm?
set @EPSLION = 0.00001 /* 1.1 metres at equator */
SELECT * FROM location_forslag
WHERE `lngitude` >= 13.8461208 [email protected]
AND `lngitude` <= 13.8461208 + @EPSILON
Ini akan mengembalikan poin di mana lngitude berada dalam @epsilon
derajat dari nilai yang diinginkan. Anda harus memilih nilai epsilon yang sesuai dengan aplikasi Anda.