Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Pode 'false' corresponder a alguma string no mysql?


Em MYSQL, FALSE não é um valor booleano, é um inteiro, mais especificamente zero. Na verdade, o MySQL não possui tipos de colunas booleanas (tem BOOL e BOOLEAN mas são meros aliases para TINYINT ). Portanto, sua consulta é sinônimo de:
SELECT * FROM session WHERE token = 0

Desde token é um VARCHAR, o MySQL precisa converter suas strings em número. Execute esta consulta e você terá uma ideia sobre as regras:
SELECT
    0 + "0001",
    0 + "123abc",
    0 + "abc123"

Como resultado, fa356333dd3ee8f1b18b8bf0a827e34c converte para 0 porque começa com uma letra, daí a correspondência.