sql >> Database >  >> RDS >> Mysql

Kan 'false' overeenkomen met een string in mysql?

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.



  1. Een SQLAlchemy Integer-veld gebruiken om een ​​tijddelta-object te maken om te filteren

  2. Wat is het verschil tussen utf8_general_ci en utf8_unicode_ci?

  3. Mysql-queryfout - Automatische munten ADD

  4. EBS 12.2.5 en hoger:verkeerde uitlijning van inlogpaginaknop