In MYSQL, FALSO
non è un valore booleano, è un numero intero, più precisamente zero. In effetti, MySQL non ha tipi di colonne booleane (ha BOOL
e BOOLEAN
ma sono semplici alias per TINYINT
). Quindi la tua query è sinonimo di:
SELECT * FROM session WHERE token = 0
Dal token
è un VARCHAR, MySQL ha bisogno di convertire le tue stringhe in numeri. Esegui questa query e avrai un'idea delle regole:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Di conseguenza, fa356333dd3ee8f1b18b8bf0a827e34c
trasmette a 0
perché inizia con una lettera, quindi la corrispondenza.