In MYSQL FALSCH
ist kein boolescher Wert, sondern eine Ganzzahl, genauer gesagt Null. Tatsächlich hat MySQL keine booleschen Spaltentypen (es hat BOOL
und BOOLEAN
aber sie sind nur Aliase für TINYINT
). Ihre Abfrage ist also ein Synonym für:
SELECT * FROM session WHERE token = 0
Seit token
ein VARCHAR ist, muss MySQL Ihre Zeichenfolgen in Zahlen umwandeln. Führen Sie diese Abfrage aus, und Sie erhalten eine Vorstellung von den Regeln:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Als Ergebnis fa356333dd3ee8f1b18b8bf0a827e34c
wandelt in 0
um weil es mit einem Buchstaben beginnt, also das Match.