mysql bug?
am 13.11.2007 16:37:02 von Keith Sauvant
Hallo zusammen,
5.0.27-community-nt unter Windows XP zeigt folgendes Verhalten:
CREATE TABLE `test` (
`test_col` DECIMAL( 10, 2 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO `test`.`test` (
`test_col`
) VALUES (
'4.56'
);
SELECT * FROM test WHERE test_col='4.56'
-> no result
Das MERKWÃRDIGE: mit '4.57' funktionierts!
Kann das jemand mit seiner Version reproduzieren und/oder mir/sich erklären?
Gruà aus Aachen
Keith
Re: mysql bug?
am 13.11.2007 18:30:57 von petsch
On 13 Nov., 16:37, Keith Sauvant
wrote:
>
> Das MERKWÜRDIGE: mit '4.57' funktionierts!
Stimmt nicht.
Für '4.57' ebenfalls No-Result unter Win 5.0.18
Peter
Re: mysql bug?
am 13.11.2007 18:42:03 von Stephan Menzel
Hallo,
>Hallo zusammen,
>
>5.0.27-community-nt unter Windows XP zeigt folgendes Verhalten:
>
>CREATE TABLE `test` (
>`test_col` DECIMAL( 10, 2 ) NOT NULL
>) ENGINE = MYISAM ;
>
>
>INSERT INTO `test`.`test` (
>`test_col`
>) VALUES (
>'4.56'
>);
verstehe nich warum du dass als String übergibst!
INSERT INTO `test`.`test` (`test_col`) VALUES (4.56);
geht doch auch!
>
>
>SELECT * FROM test WHERE test_col='4.56'
und somit auch
SELECT * FROM test WHERE test_col=4.56;
>-> no result
>
>Das MERKWÜRDIGE: mit '4.57' funktionierts!
>
>Kann das jemand mit seiner Version reproduzieren und/oder mir/sich erklären?
>
>Gruß aus Aachen
>Keith
cu Stephan
Re: mysql bug?
am 13.11.2007 18:50:07 von Stephan Menzel
ich habe im übrigen Version 5.0.37
cu Stephan
Re: mysql bug?
am 13.11.2007 21:22:12 von Stefan Braumeister
Keith Sauvant schrieb:
> Hallo zusammen,
>
> 5.0.27-community-nt unter Windows XP zeigt folgendes Verhalten:
Hab ich auch hier auf einem Testrechner.
>
> CREATE TABLE `test` (
> `test_col` DECIMAL( 10, 2 ) NOT NULL
> ) ENGINE = MYISAM ;
>
>
> INSERT INTO `test`.`test` (
> `test_col`
> ) VALUES (
> '4.56'
> );
>
>
> SELECT * FROM test WHERE test_col='4.56'
> -> no result
Die Abfrage ist auch falsch, richtig ist:
SELECT * FROM test WHERE test_col=4.56;
>
> Das MERKWÃRDIGE: mit '4.57' funktionierts!
Tut es nicht:-)
mysql> select * from test where test_col = 4.56;
+----------+
| test_col |
+----------+
| 4.56 |
+----------+
1 row in set (0.00 sec)
mysql> select * from test where test_col = '4.56';
Empty set (0.00 sec)
mysql> select * from test where test_col = '4.57';
Empty set (0.00 sec)
>
> Kann das jemand mit seiner Version reproduzieren und/oder mir/sich
> erklären?
>
> Gruà aus Aachen
> Keith
Re: mysql bug?
am 13.11.2007 22:28:06 von Thomas Rachel
Keith Sauvant schrieb:
> INSERT INTO `test`.`test` (
> `test_col`
> ) VALUES (
> '4.56'
> );
>
>
> SELECT * FROM test WHERE test_col='4.56'
> -> no result
Es ist IMMER ein Problem, FlieÃkommazahlen zu vergleichen, egal, ob in
C, Java oder MySQL.
Denn Nachkommastellen, die in der Binärdarstellung periodisch sind,
lassen sich nicht präzise darstellen. Von daher kann so ein Vergleich
schon mal schief gehen.
Insbesondere, wenn Du - wie Stephan auch schon angemerkt hat - mit
Strings arbeitest. Denn wenn Du die '4.56' in die Tabelle legst, wird da
intern eine leicht andere Zahl abgespeichert, und diese wiederum als
String mit '4.56' verglichen, könnte was Unterschiedliches ergeben.
Könnte, muà nicht.
Auf 5.0.26-Max (Linux) läÃt sich das beschriebene Verhalten übrigens
nicht reprodzieren...
Thomas
Re: mysql bug?
am 14.11.2007 00:14:13 von B.Steinbrink
On Tue, 13 Nov 2007 09:30:57 -0800, Peter Schleif wrote:
> On 13 Nov., 16:37, Keith Sauvant wrote:
>>
>> Das MERKWÃRDIGE: mit '4.57' funktionierts!
>
> Stimmt nicht.
>
> Für '4.57' ebenfalls No-Result unter Win 5.0.18
Solange du nicht exakt vergleichbare Hard-/Software hast, oder zumindest
exakt weisst wie sich Keiths Plattform bei der FlieÃkommaarithmetik
verhält, wäre ich mit solchen Aussagen bei Gleichheitstests von
FlieÃkommazahlen ganz vorsichtig. Ein einfaches lokales Testen sagt dir
bei solchen Sachen im Allgemeinen gar nichts darüber, ob sich das bei
jemand anders genau so verhält. AFAIK unterscheiden sich die Ergebnisse
gleicher FlieÃkommaberechnungen schon bei Intel und AMD CPUs, also
innerhalb einer Architektur, sehr wahrscheinlich auch zwischen
verschiedenen Prozessorfamilien der gleichen Architektur des gleichen
Herstellers (z.B. Pentium vs. Pentium III).
Obwohl der Spaltentyp DECIMAL ist, ist die Konstante ein String (dank der
einfachen Anführungszeichen), was dazu führt, dass daraus eine
FlieÃkommazahl wird und der komplette Ausdruck mit FlieÃkommaarithmetik
berechnet wird, was einen Test auf Gleichheit quasi verbietet. Siehe:
http://dev.mysql.com/doc/refman/5.0/en/precision-math-expres sions.html
Ergo: Einfach die Anführungszeichen entfernen und fertig (wie es Stefan
ja schon vorgeschlagen hat).
Björn
Re: mysql bug?
am 14.11.2007 08:31:21 von Christian Kirsch
Thomas Rachel schrieb:
> Keith Sauvant schrieb:
>
>> INSERT INTO `test`.`test` (
>> `test_col`
>> ) VALUES (
>> '4.56'
>> );
>>
>>
>> SELECT * FROM test WHERE test_col='4.56'
>> -> no result
>
> Es ist IMMER ein Problem, Fließkommazahlen zu vergleichen, egal, ob in
> C, Java oder MySQL.
>
Sollte aber DECIMAL(10,2) nicht eine *Fest*kommazahl sein?
> Denn Nachkommastellen, die in der Binärdarstellung periodisch sind,
> lassen sich nicht präzise darstellen. Von daher kann so ein Vergleich
> schon mal schief gehen.
>
Stimmt für FLOAT etc. Stimmt aber m.E. nicht für NUMERIC, MONETARY und
DECIMAL - die benutzen nämlich sowas wie BCD oder gar (god forbid)
Strings als interne Repräsentation.
Re: mysql bug?
am 14.11.2007 08:36:38 von Christian Kirsch
Björn Steinbrink schrieb:
> On Tue, 13 Nov 2007 09:30:57 -0800, Peter Schleif wrote:
>
>> On 13 Nov., 16:37, Keith Sauvant
>> wrote:
>>> Das MERKWÜRDIGE: mit '4.57' funktionierts!
>> Stimmt nicht.
>>
>> Für '4.57' ebenfalls No-Result unter Win 5.0.18
>
> Solange du nicht exakt vergleichbare Hard-/Software hast, oder
> zumindest exakt weisst wie sich Keiths Plattform bei der
> Fließkommaarithmetik verhält, wäre ich mit solchen Aussagen bei
> Gleichheitstests von
Ja, ja, ja.
Aber:
> MySQL supports all of the standard SQL numeric data types. These
> types include the exact numeric data types (INTEGER, SMALLINT,
> DECIMAL, and NUMERIC), as well as the approximate numeric data types
> (FLOAT, REAL, and DOUBLE PRECISION).
Wie Du unschwer erkennen kannst, ist DECIMAL (und darum ging es hier)
ein *exakter* Datentyp. Nicht umsonst haben sich DB-Hersteller sowas wie
NUMERIC, MONETARY und DECIMAL ausgedacht, denn viele Anwendungen
brauchen eine exakte Repräsentation von Dezimalzahlen.
Deshalb geht Dein Argument am eigentlichen Thema vorbei.
> Obwohl der Spaltentyp DECIMAL ist, ist die Konstante ein String (dank
> der einfachen Anführungszeichen), was dazu führt, dass daraus eine
> Fließkommazahl wird und der komplette Ausdruck mit
> Fließkommaarithmetik berechnet wird, was einen Test auf Gleichheit
> quasi verbietet. Siehe:
>
> http://dev.mysql.com/doc/refman/5.0/en/precision-math-expres sions.html
>
>
> Ergo: Einfach die Anführungszeichen entfernen und fertig (wie es
> Stefan ja schon vorgeschlagen hat).
Was nichts damit zu tun hat, dass dann plötzlich ein Vergleich auf
Gleichheit in Fließkommaarithmetik zuverlässig funktionieren würde :-(
Re: mysql bug?
am 14.11.2007 09:16:16 von Stephan Menzel
Hallo,
>Thomas Rachel schrieb:
>> Keith Sauvant schrieb:
>>
>>> INSERT INTO `test`.`test` (
>>> `test_col`
>>> ) VALUES (
>>> '4.56'
>>> );
>>>
>>>
>>> SELECT * FROM test WHERE test_col='4.56'
>>> -> no result
>>
>> Es ist IMMER ein Problem, Fließkommazahlen zu vergleichen, egal, ob in
>> C, Java oder MySQL.
>>
>
>Sollte aber DECIMAL(10,2) nicht eine *Fest*kommazahl sein?
>
>> Denn Nachkommastellen, die in der Binärdarstellung periodisch sind,
>> lassen sich nicht präzise darstellen. Von daher kann so ein Vergleich
>> schon mal schief gehen.
>>
>
>Stimmt für FLOAT etc. Stimmt aber m.E. nicht für NUMERIC, MONETARY und
>DECIMAL - die benutzen nämlich sowas wie BCD oder gar (god forbid)
>Strings als interne Repräsentation.
Das mag sein nur die "interne Repräsentation" geht nur die Datenbank
was an und nicht den User, wenn er eine Eingabe macht, der hat die
Daten dann so zu Liefern wie er es festlegte!
Womit wenn ich ein Feld mit DECIMAL(x,Y) definiere auch bei der
Datenübergabe z.b. 4.56 und nicht '4.56' zu übergeben habe,
man wandelt doch auch nicht jedes mal ein BOOL Wert in einen INTEGER
um, nur weil die Datenbank "intern" eh INTEGER weiter verarbeitet!.
cu Stephan
Re: mysql bug
am 14.11.2007 11:43:05 von Keith Sauvant
Danke für die schnellen Antworten!
Mir ist auch klar, dass es nicht sauber ist, mit Strings auf
DECIMAL-Spalten loszugehen. Nur: Es funktioniert unter Linux problemlos,
anscheinend nur unter Windows nicht zuverlässig. Dass es bei einem Wert
funktioniert, bei einem anderen aber nicht, konnte ich mir nicht
erklären. Daher hier die Nachfrage.
Mit der FlieÃkommaerklärung kann ich leben, danke!
Wohl doch kein mysql bug ;-)
GruÃ
Keith
Re: mysql bug?
am 14.11.2007 12:09:28 von Christian Kirsch
Stephan Menzel schrieb:
>>> Es ist IMMER ein Problem, Fließkommazahlen zu vergleichen, egal, ob in
>>> C, Java oder MySQL.
>>>
>> Sollte aber DECIMAL(10,2) nicht eine *Fest*kommazahl sein?
>>
>>> Denn Nachkommastellen, die in der Binärdarstellung periodisch sind,
>>> lassen sich nicht präzise darstellen. Von daher kann so ein Vergleich
>>> schon mal schief gehen.
>>>
>> Stimmt für FLOAT etc. Stimmt aber m.E. nicht für NUMERIC, MONETARY und
>> DECIMAL - die benutzen nämlich sowas wie BCD oder gar (god forbid)
>> Strings als interne Repräsentation.
>
> Das mag sein nur die "interne Repräsentation" geht nur die Datenbank
> was an und nicht den User, wenn er eine Eingabe macht, der hat die
> Daten dann so zu Liefern wie er es festlegte!
> Womit wenn ich ein Feld mit DECIMAL(x,Y) definiere auch bei der
> Datenübergabe z.b. 4.56 und nicht '4.56' zu übergeben habe,
> man wandelt doch auch nicht jedes mal ein BOOL Wert in einen INTEGER
> um, nur weil die Datenbank "intern" eh INTEGER weiter verarbeitet!.
Ich habe nicht der Feststellung widersprochen, dass man Zahlen als
Zahlen übergeben und auch vergleich soll - sondern dem falschen Bezug zu
Fließkommazahlen. Der OP hat ausdrücklich und zu Recht DECIMAL
verwendet, weil damit exakte Vergleiche möglich sind. Die interne
Repräsentation ist in diesem Fall durchaus wichtig, weil eben BCD oder
auch Strings eine exakte Repräsentation von Dezimalzahlen erlauben, was
mit jeder Art von Umrechnung in das Binärsystem, wie sie bei Floats u.ä.
vorkommen, nicht möglich ist.
Und immer noch stimmt, dass man Werte gefälligst in der Form zu
übergeben hat, wie die DB sie erwartet. (Obwohl Du natürlich auch kein
Boolean übergibst, sondern eine String-Repräsentation dessen -- aber das
ist eben SQL)
Re: mysql bug
am 14.11.2007 12:10:08 von Christian Kirsch
Keith Sauvant schrieb:
> Danke für die schnellen Antworten!
>
> Mir ist auch klar, dass es nicht sauber ist, mit Strings auf
> DECIMAL-Spalten loszugehen.
Dann lass es doch.
Re: mysql bug?
am 14.11.2007 12:55:32 von Stephan Menzel
Hallo,
>Stephan Menzel schrieb:
>
>> um, nur weil die Datenbank "intern" eh INTEGER weiter verarbeitet!.
>
>Ich habe nicht der Feststellung widersprochen, dass man Zahlen als
>Zahlen übergeben und auch vergleich soll - sondern dem falschen Bezug zu
>Fließkommazahlen. Der OP hat ausdrücklich und zu Recht DECIMAL
>verwendet, weil damit exakte Vergleiche möglich sind. Die interne
>Repräsentation ist in diesem Fall durchaus wichtig, weil eben BCD oder
>auch Strings eine exakte Repräsentation von Dezimalzahlen erlauben, was
>mit jeder Art von Umrechnung in das Binärsystem, wie sie bei Floats u.ä.
>vorkommen, nicht möglich ist.
>
>Und immer noch stimmt, dass man Werte gefälligst in der Form zu
>übergeben hat, wie die DB sie erwartet. (Obwohl Du natürlich auch kein
>Boolean übergibst, sondern eine String-Repräsentation dessen -- aber das
>ist eben SQL)
Entschuldige ich habe mich in meiner Ausführung etwas verrant!
Die Bemerkung bezüglich des Boollean ging an Keith nicht an dich, das
er den entsprechenden Datentyp auch verwendet, den die Tabelle
verlangt!
cu Stephan
Re: mysql bug
am 14.11.2007 12:58:50 von Stephan Menzel
Hallo,
>Danke für die schnellen Antworten!
>
>Mir ist auch klar, dass es nicht sauber ist, mit Strings auf
>DECIMAL-Spalten loszugehen. Nur: Es funktioniert unter Linux problemlos,
>anscheinend nur unter Windows nicht zuverlässig. Dass es bei einem Wert
>funktioniert, bei einem anderen aber nicht, konnte ich mir nicht
>erklären. Daher hier die Nachfrage.
>
>Mit der Fließkommaerklärung kann ich leben, danke!
Es hat nicht unbedingt mit Linux oder Windows zu tun!
Vorraussetzung ist das Du deine Dateneingabe so änderst das
Du auch das an den SQL-Server Sendest was Definiert ist!
>
>Wohl doch kein mysql bug ;-)
>
>Gruß
>Keith
cu Stephan
Re: mysql bug?
am 14.11.2007 15:03:28 von B.Steinbrink
On Wed, 14 Nov 2007 08:36:38 +0100, Christian Kirsch wrote:
> Björn Steinbrink schrieb:
>> On Tue, 13 Nov 2007 09:30:57 -0800, Peter Schleif wrote:
>>
>>> On 13 Nov., 16:37, Keith Sauvant
>>> wrote:
>>>> Das MERKWÃRDIGE: mit '4.57' funktionierts!
>>> Stimmt nicht.
>>>
>>> Für '4.57' ebenfalls No-Result unter Win 5.0.18
>>
>> Solange du nicht exakt vergleichbare Hard-/Software hast, oder
>> zumindest exakt weisst wie sich Keiths Plattform bei der
>> FlieÃkommaarithmetik verhält, wäre ich mit solchen Aussagen bei
>> Gleichheitstests von
>
> Ja, ja, ja.
>
> Aber:
>
>> MySQL supports all of the standard SQL numeric data types. These types
>> include the exact numeric data types (INTEGER, SMALLINT, DECIMAL, and
>> NUMERIC), as well as the approximate numeric data types (FLOAT, REAL,
>> and DOUBLE PRECISION).
>
> Wie Du unschwer erkennen kannst, ist DECIMAL (und darum ging es hier)
> ein *exakter* Datentyp. Nicht umsonst haben sich DB-Hersteller sowas wie
> NUMERIC, MONETARY und DECIMAL ausgedacht, denn viele Anwendungen
> brauchen eine exakte Repräsentation von Dezimalzahlen.
>
> Deshalb geht Dein Argument am eigentlichen Thema vorbei.
Der Op hat aber nunmal die Konstante als String angegeben (und Peter in
seiner Antwort auch) und dann hat man eben effektiv _kein_ DECIMAL mehr
sondern nur noch DOUBLE(?), wie ich im folgenden Absatz erwähnt hatte. Es
ging mir nur darum, dass dieses "Stimmt nicht" quais ein Angriff auf den
Op war, während der Fehler an einer völlig anderen Stelle lag und das
"Stimmt nicht" jeglicher Grundlage beraubt hat.
>> Obwohl der Spaltentyp DECIMAL ist, ist die Konstante ein String (dank
>> der einfachen Anführungszeichen), was dazu führt, dass daraus eine
>> FlieÃkommazahl wird und der komplette Ausdruck mit FlieÃkommaarithmetik
>> berechnet wird, was einen Test auf Gleichheit quasi verbietet. Siehe:
>>
>> http://dev.mysql.com/doc/refman/5.0/en/precision-math-expres sions.html
>>
>>
>> Ergo: Einfach die Anführungszeichen entfernen und fertig (wie es Stefan
>> ja schon vorgeschlagen hat).
>
> Was nichts damit zu tun hat, dass dann plötzlich ein Vergleich auf
> Gleichheit in FlieÃkommaarithmetik zuverlässig funktionieren würde :-(
Natürlich nicht, ohne die Anführungszeichen wird ja auch gar keine
FlieÃkommaarithmetik mehr benutzt, sondern exakte Werte, womit sich das
Problem in Luft auflöst. Sorry, wenn das nicht klar genug rüberkam.
Björn
Re: mysql bug
am 14.11.2007 15:07:52 von B.Steinbrink
On Wed, 14 Nov 2007 11:43:05 +0100, Keith Sauvant wrote:
> Danke für die schnellen Antworten!
>
> Mir ist auch klar, dass es nicht sauber ist, mit Strings auf
> DECIMAL-Spalten loszugehen. Nur: Es funktioniert unter Linux problemlos,
> anscheinend nur unter Windows nicht zuverlässig. Dass es bei einem Wert
> funktioniert, bei einem anderen aber nicht, konnte ich mir nicht
> erklären. Daher hier die Nachfrage.
Du wirst auch unter Linux Werte finden bei denen es fehlschlägt. Wird
einfach ne leicht andere FlieÃkomma-Implementation sein und die bringt
die nötige Abweichung halt bei anderen Werten.
> Mit der FlieÃkommaerklärung kann ich leben, danke!
Warum nicht einfach die Anführungszeichen weglassen, dadurch exakte
Berechnungen erhalten, keine FlieÃkommaproblematik mehr haben und
glücklich sein?
Björn
Re: mysql bug?
am 14.11.2007 17:07:51 von Christian Kirsch
Björn Steinbrink schrieb:
>>> Obwohl der Spaltentyp DECIMAL ist, ist die Konstante ein String (dank
>>> der einfachen Anführungszeichen), was dazu führt, dass daraus eine
>>> Fließkommazahl wird und der komplette Ausdruck mit Fließkommaarithmetik
>>> berechnet wird, was einen Test auf Gleichheit quasi verbietet. Siehe:
>>>
>>> http://dev.mysql.com/doc/refman/5.0/en/precision-math-expres sions.html
Danke für die Erläuterung. Ich hätte mir vorstellen können, dass MySQL
die Wandlung erst vornimmt, wenn es *weiß*, was für ein Typ sinnvoll ist
(also Spaltentyp angucken, DECIMAL sehen und Das Richtige(tm) tun).
Offenbar nicht ..
Re: mysql bug
am 14.11.2007 18:06:37 von Keith Sauvant
Björn Steinbrink wrote:
> Warum nicht einfach die Anführungszeichen weglassen, dadurch exakte
> Berechnungen erhalten, keine FlieÃkommaproblematik mehr haben und
> glücklich sein?
habe ich jemals gesagt, dass ich diesen Code produktiv einzusetzen
gedenke? ;-) Es ging mir einzig und allein darum, dieses merkwürdige
Verhalten zu verstehen.
Ãbrigens tritt es ab 5.0.32 nicht mehr auf:
http://bugs.mysql.com/bug.php?id=23260
GruÃ
Keith
Re: mysql bug?
am 14.11.2007 21:24:34 von Claus Reibenstein
Christian Kirsch schrieb:
> Danke für die Erläuterung. Ich hätte mir vorstellen können, dass MySQL
> die Wandlung erst vornimmt, wenn es *weiß*, was für ein Typ sinnvoll ist
> (also Spaltentyp angucken, DECIMAL sehen und Das Richtige(tm) tun).
> Offenbar nicht ..
MySQL tut das Richtige, nämlich genau das, was im Manual beschrieben
ist: "Wenn ein numerischer Ausdruck Strings enthält, so werden diese in
Fließkommawerte mit doppelter Genauigkeit umgewandelt und es entsteht
ein näherungsweiser Ausdruck".
http://dev.mysql.com/doc/refman/5.1/de/precision-math-expres sions.html
Gruß. Claus
Re: mysql bug?
am 15.11.2007 09:18:01 von Christian Kirsch
Claus Reibenstein schrieb:
> Christian Kirsch schrieb:
>
>> Danke für die Erläuterung. Ich hätte mir vorstellen können, dass MySQL
>> die Wandlung erst vornimmt, wenn es *weiß*, was für ein Typ sinnvoll ist
>> (also Spaltentyp angucken, DECIMAL sehen und Das Richtige(tm) tun).
>> Offenbar nicht ..
>
> MySQL tut das Richtige, nämlich genau das, was im Manual beschrieben
> ist: "Wenn ein numerischer Ausdruck Strings enthält, so werden diese in
> Fließkommawerte mit doppelter Genauigkeit umgewandelt und es entsteht
> ein näherungsweiser Ausdruck".
>
> http://dev.mysql.com/doc/refman/5.1/de/precision-math-expres sions.html
>
Vielleicht hinkt das Manual (oder gar Du?) ein bisschen hinter der
Realität her?
http://bugs.mysql.com/bug.php?id=23260
Nicht alles, was im MySQL-Handbuch steht, ist deshalb schon sinnvoll ;-)
Ceterum censeo: Natürlich soll man keine Strings übergeben, wenn eine
Zahl erwartet wird ...
Re: mysql bug?
am 15.11.2007 14:34:12 von Claus Reibenstein
Christian Kirsch schrieb:
> Claus Reibenstein schrieb:
>
>> MySQL tut das Richtige, nämlich genau das, was im Manual beschrieben
>> ist: "Wenn ein numerischer Ausdruck Strings enthält, so werden diese in
>> Fließkommawerte mit doppelter Genauigkeit umgewandelt und es entsteht
>> ein näherungsweiser Ausdruck".
>>
>> http://dev.mysql.com/doc/refman/5.1/de/precision-math-expres sions.html
>
> Vielleicht hinkt das Manual (oder gar Du?) ein bisschen hinter der
> Realität her?
Inwiefern?
> http://bugs.mysql.com/bug.php?id=23260
Hast Du das, worauf Du hier verweist, eigentlich gelesen und auch
verstanden? Ich habe nicht den Eindruck.
> Nicht alles, was im MySQL-Handbuch steht, ist deshalb schon sinnvoll ;-)
Nichtsdestotrotz ist dieses Verhalten dokumentiert und somit kein Bug,
was durch Deinen Link auch bestätigt wird.
Gruß. Claus
Re: mysql bug?
am 19.11.2007 15:53:01 von Thomas Rachel
Christian Kirsch schrieb:
>> Es ist IMMER ein Problem, Fließkommazahlen zu vergleichen, egal, ob in
>> C, Java oder MySQL.
>>
>
> Sollte aber DECIMAL(10,2) nicht eine *Fest*kommazahl sein?
Ups, ja, da hast Du recht. Da hab ich eben knapp vorbei argumentiert -
wenn ich auch indirekt wieder richtig lan, da der String intern zu einem
DOUBLE wird...
Thomas