W MYSQL FAŁSZ
nie jest wartością logiczną, to liczba całkowita, a dokładniej zero. W rzeczywistości MySQL nie ma typów kolumn logicznych (ma BOOL
i BOOLEAN
ale to tylko aliasy dla TINYINT
). Twoje zapytanie jest więc synonimem:
SELECT * FROM session WHERE token = 0
Od token
jest VARCHAR, MySQL musi przekonwertować twoje łańcuchy na liczbę. Uruchom to zapytanie, a zorientujesz się w zasadach:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
W rezultacie fa356333dd3ee8f1b18b8bf0a827e34c
rzutuje na 0
ponieważ zaczyna się na literę, więc dopasowanie.