I MYSQL, FALSKT
är inte ett booleskt värde, det är ett heltal, närmare bestämt noll. Faktum är att MySQL inte har booleska kolumntyper (den har BOOL
). och BOOLEAN
men de är bara alias för TINYINT
). Så din fråga är en synonym för:
SELECT * FROM session WHERE token = 0
Sedan token
är en VARCHAR måste MySQL konvertera dina strängar till nummer. Kör den här frågan så får du en uppfattning om reglerna:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Som ett resultat, fa356333dd3ee8f1b18b8bf0a827e34c
castar till 0
eftersom den börjar med en bokstav, alltså matchningen.