sql >> Databasteknik >  >> RDS >> Mysql

Varför returnerar inte denna sql-fråga några resultat som jämför flyttal?

Det är generellt inte en bra idé att jämföra flyttal med = är lika med operator.

För din ansökan måste du fundera över hur nära du vill att svaret ska ligga.

1 grad är ungefär 112 km och 0,00001 grader är ungefär 1,1 meter (vid ekvatorn). Vill du verkligen att din ansökan ska säga "inte lika" om två punkter är olika med 0,00000001 grader =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

Detta kommer att returnera punkter där lngituden är inom @epsilon grader av önskat värde. Du bör välja ett värde för epsilon som är lämpligt för din applikation.



  1. Datalagring:REST vs. POSIX för arkiv och HSM

  2. Vilken funktion ska jag använda för att hasha lösenord i MySQL?

  3. Använda Docker på Azure Container Service med Swarm Cluster

  4. Entity Framework 6 med Npgsql