Mysql
 sql >> Base de données >  >> RDS >> Mysql

'false' peut-il correspondre à une chaîne dans mysql?

Dans MYSQL, FAUX n'est pas une valeur booléenne, c'est un entier, plus précisément zéro. En fait, MySQL n'a pas de types de colonnes booléennes (il a BOOL et BOOLEAN mais ce ne sont que des alias pour TINYINT ). Votre requête est donc synonyme de :

SELECT * FROM session WHERE token = 0

Depuis token est un VARCHAR, MySQL doit convertir vos chaînes en nombre. Exécutez cette requête et vous aurez une idée des règles :

SELECT
    0 + "0001",
    0 + "123abc",
    0 + "abc123"

En conséquence, fa356333dd3ee8f1b18b8bf0a827e34c convertit en 0 car il commence par une lettre, donc la correspondance.