В MYSQL FALSE
не е булева стойност, а е цяло число, по-точно нула. Всъщност MySQL няма булеви типове колони (има BOOL
и BOOLEAN
но те са просто псевдоними за TINYINT
). Така че вашата заявка е синоним на:
SELECT * FROM session WHERE token = 0
От token
е VARCHAR, MySQL трябва да преобразува вашите низове в число. Изпълнете тази заявка и ще получите представа за правилата:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
В резултат на това fa356333dd3ee8f1b18b8bf0a827e34c
прехвърля към 0
защото започва с буква, следователно съвпада.