Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Locate mit einem Floatwert

  Alt 19. Sep 2007, 17:06
Hallo,

ich bin jetzt nicht sicher, ob du mich verstanden hast. Bei der Suche über ein Float-Feld kommst du um eine Intervallsuche nicht herum. Ist die Datenmenge eher klein oder vorselektiert, dann ist ein lokaler Filter sicher kein Problem. Wenn du auf einer großen Tupelzahl suchst, dann tust du das auf dem Server und eine Intervallsuche per SQL ist durch den BETWEEN Operator noch einfacher. Ein Treffer mit Locate() auf einem Float-Feld ist nicht zuverlässig, da die interne Repräsentation des Float-Wertes auf den niederen Bits der Mantisse von Fall zu Fall abweichen kann, jenachdem wie der Float-Wert entstanden ist.

Nochmal mit anderen Worten: Float-Werte werden auch außerhalb von Datenbanken nie auf Gleichheit oder Ungleichheit getestet, es wird immer ein Intervall betrachtet.

Freundliche Grüße
  Mit Zitat antworten Zitat