Mailinglisten-Archive |
On Mon Oct 14, 2002 at 09:4809AM +0200, Don Marco wrote: > Hallo, > > die Abfrage > SELECT * FROM lebensmittel WHERE broteinheiten = '1.1'; > liefert keine Datensätze, obwohl mehrere vorhanden sind. > broteinheiten sind definiert als float(16,1) > > Liegt es am Gleicheitszeichen? Die Abfrage: > SELECT * FROM lebensmittel WHERE broteinheiten > '1.0' AND broteinheiten > <'1.2'; > funktioniert? Ich wuerde mal darauf tippen. Das Problem ist, das 1.1 in binaerer Fliesskomma-Darstellung nicht exakt darstellbar ist, sondern nur als Bruch. Du muesstest also immer mit entsprechenden Grenzen vergleichen, um sinnvolle Ergebnisse zu bekommen. Alternativ kannst du das Problem moeglicherweise mit dem Decimal Datentyp angehen, der wird exakt dargestellt, und moeglicherweise kannst du durch geeignete Multiplikation (z.B. mit 10) das Problem so verlagern, das du nur Int-Werte verwendest. -- Michael Bergbauer <michael_(at)_noname.franken.de> use your idle CPU cycles - See http://www.distributed.net for details. Visit our mud Geas at geas.franken.de Port 3333 --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive