Di MYSQL, SALAH
bukan nilai boolean, itu bilangan bulat, lebih khusus nol. Faktanya, MySQL tidak memiliki tipe kolom boolean (memiliki BOOL
dan BOOLEAN
tapi itu hanya alias untuk TINYINT
). Jadi kueri Anda adalah sinonim untuk:
SELECT * FROM session WHERE token = 0
Sejak token
adalah VARCHAR, MySQL perlu mengonversi string Anda menjadi angka. Jalankan kueri ini dan Anda akan mendapatkan gambaran tentang aturannya:
SELECT
0 + "0001",
0 + "123abc",
0 + "abc123"
Akibatnya, fa356333dd3ee8f1b18b8bf0a827e34c
dilemparkan ke 0
karena dimulai dengan huruf, maka cocok.