dedlfix: MySQL-Bug? Uppercase-String ist FALSE ?

Beitrag lesen

Tach!

Vielleicht bin ich aber auch noch nicht auf das richtige Recherche-Keyword gestoßen.

Automatische Typumwandlung

Testfeld: USUSSHDGIASGDAGDA

Hier nun eine Abfrage: SELECT Testfeld FROM Tabelle WHERE Testfeld = False

Ergebnis: USUSSHDGIASGDAGDA

Das funktioniert nur mit Großbuchstaben.

Nein, auch mit anderen (aber nicht allen) Werten muss es so gehen.

WARUM?

True und False gibt es eigentlich nicht, sie sind nur Aliases für 1 und 0.

Vom obigen Link trifft diese Regel zu: "In all other cases, the arguments are compared as floating-point (real) numbers."

Wenn Strings mit Ziffern beginnen, werden diese als Zahl interpretiert, ansonsten ergibt die Konvertierung in eine Zahl 0. Und 0 ist gleich 0 (False).

dedlfix.