In MYSQL, FALSE
is geen booleaanse waarde, het is een geheel getal, meer specifiek nul. In feite heeft MySQL geen booleaanse kolomtypes (het heeft BOOL
en BOOLEAN
maar het zijn slechts aliassen voor TINYINT
). Uw zoekopdracht is dus een synoniem voor:
SELECT * FROM session WHERE token = 0
Sinds token
is een VARCHAR, MySQL moet uw strings naar een getal converteren. Voer deze zoekopdracht uit en u krijgt een idee van de regels:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Als gevolg hiervan, fa356333dd3ee8f1b18b8bf0a827e34c
cast naar 0
omdat het met een letter begint, dus de match.