V MYSQL NEPRAVDA
není booleovská hodnota, je to celé číslo, přesněji nula. Ve skutečnosti MySQL nemá booleovské typy sloupců (má BOOL
a BOOLEAN
ale jsou to pouhé aliasy pro TINYINT
). Váš dotaz je tedy synonymem pro:
SELECT * FROM session WHERE token = 0
Od token
je VARCHAR, MySQL potřebuje převést vaše řetězce na číslo. Spusťte tento dotaz a získáte představu o pravidlech:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Výsledkem je fa356333dd3ee8f1b18b8bf0a827e34c
přenese na 0
protože to začíná písmenem, tedy shodu.