Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum gibt SELECT ... WHERE id =a ein Ergebnis zurück, wenn der Wert 0 ist

MySQL wandelt Zeichenfolgen in einem numerischen Kontext stillschweigend in Zahlen um.

Dazu werden die führenden numerischen Zeichen (wie Ziffern, Minuszeichen und Dezimalpunkt) konvertiert.

Wenn es keine Ziffern gibt, stoppt es. Also:

where id = 'a'

wird interpretiert als:

where id = 0

Moral:Verwenden Sie niemals einfache Anführungszeichen um numerische Konstanten – oder Konstanten, die Zahlen sein sollten.