Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо тази sql заявка не връща никакви резултати при сравняване на числа с плаваща запетая?

По принцип не е добра идея да сравнявате числата с плаваща запетая с = оператор равен.

За вашата кандидатура трябва да помислите колко близо искате да бъде отговорът.

1 градус е около 112 км, а 0,00001 градуса е около 1,1 метра (на екватора). Наистина ли искате приложението ви да казва „не е равно“, ако две точки са различни с 0,00000001 градуса =1 мм?

set @EPSLION = 0.00001  /* 1.1 metres at equator */

SELECT * FROM location_forslag 
WHERE `lngitude` >= 13.8461208 [email protected] 
AND `lngitude` <= 13.8461208 + @EPSILON

Това ще върне точки, където дължината е в рамките на @epsilon градуси на желаната стойност. Трябва да изберете стойност за епсилон, която е подходяща за вашето приложение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Преброяване на последователните редове, които съвпадат

  2. извадете 1 от числото в ред SQL заявка

  3. Имена на таблици с малки букви на MySQL в имената на Windows с главни букви в Unix

  4. Mysql MySQL или PHP Преобразувайте редовете в две колони динамично

  5. MySQL:Избиране на всички колони в таблица плюс една колона от същата таблица