Generalnie nie jest dobrym pomysłem porównywanie liczb zmiennoprzecinkowych za pomocą =
oznacza operator.
W przypadku swojej aplikacji musisz zastanowić się, jak blisko chcesz uzyskać odpowiedź.
1 stopień to około 112 km, a 0,00001 stopnia to około 1,1 metra (na równiku). Czy naprawdę chcesz, aby Twoja aplikacja mówiła „nie równe”, jeśli dwa punkty różnią się o 0,00000001 stopni =1 mm?
set @EPSLION = 0.00001 /* 1.1 metres at equator */
SELECT * FROM location_forslag
WHERE `lngitude` >= 13.8461208 [email protected]
AND `lngitude` <= 13.8461208 + @EPSILON
Spowoduje to zwrócenie punktów, których długość geograficzna mieści się w zakresie @epsilon
stopni żądanej wartości. Powinieneś wybrać wartość dla epsilon, która jest odpowiednia dla twojego zastosowania.