sql >> Database >  >> RDS >> Mysql

Waarom retourneert deze sql-query geen resultaten waarin getallen met drijvende komma worden vergeleken?

Het is over het algemeen geen goed idee om getallen met drijvende komma te vergelijken met = is gelijk aan operator.

Voor uw aanvraag moet u overwegen hoe dicht u het antwoord wilt hebben.

1 graad is ongeveer 112 km en 0,00001 graden is ongeveer 1,1 meter (op de evenaar). Wil je echt dat je applicatie "niet gelijk" zegt als twee punten 0,00000001 graden =1 mm verschillen?

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

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

Dit levert punten op waar de lengte binnen @epsilon . ligt graden van de gewenste waarde. Kies een waarde voor epsilon die geschikt is voor uw toepassing.



  1. Hoe controleer je of een MySQL-verbinding open is in Python?

  2. Tabelinvoer wijzigen vanuit LibreOffice Base, mogelijk?

  3. MySQL-generator voor aangepaste primaire sleutels

  4. databasebestand kopiëren van /assets naar /data/datamap in bestandsverkenner - Android