Marcus Franke schrieb:
On Tue, Jun 27, 2006 at 04:35:44PM +0200, Marcus Franke wrote:
Warum hat der char "x" hier eine Wirkung wie eine 0?
Irgendwie verstehe ich das Verhalten nicht. Negiere ich die Abfrage, dann
bekomme ich alle Werte, die nicht 0.0000 sind.
Kann mir da mal jemand auf die Sprünge helfen?
Ok,
Ursache gefunden, der Datenbankserver führt ganz still und heimlich
einen Typcast durch an statt einen type mismatch zu signalisieren.
Wieso heimlich? Das steht doch im Handbuch das er das macht.
mysql> select CAST("x" as decimal);
+----------------------+
| CAST("x" as decimal) |
+----------------------+
| 0.00 |
+----------------------+
Spannende Abenteuer, die man mit mysql immer wieder erleben kann.
Weiss zufällig jemand, welchen Parameter ich setzen muss um diesen
heimlichen Cast unheimlich zu verbieten?
MySQL 5 und den SRICT SQL mode aktivieren