Mysql
 sql >> Database >  >> RDS >> Mysql

'false' può corrispondere a una stringa in mysql?

In MYSQL, FALSO non è un valore booleano, è un numero intero, più precisamente zero. In effetti, MySQL non ha tipi di colonne booleane (ha BOOL e BOOLEAN ma sono semplici alias per TINYINT ). Quindi la tua query è sinonimo di:

SELECT * FROM session WHERE token = 0

Dal token è un VARCHAR, MySQL ha bisogno di convertire le tue stringhe in numeri. Esegui questa query e avrai un'idea delle regole:

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

Di conseguenza, fa356333dd3ee8f1b18b8bf0a827e34c trasmette a 0 perché inizia con una lettera, quindi la corrispondenza.