sql >> Databáze >  >> RDS >> Mysql

Může 'false' odpovídat nějakému řetězci v mysql?

V MYSQL NEPRAVDA není booleovská hodnota, je to celé číslo, přesněji nula. Ve skutečnosti MySQL nemá booleovské typy sloupců (má BOOL a BOOLEAN ale jsou to pouhé aliasy pro TINYINT ). Váš dotaz je tedy synonymem pro:

SELECT * FROM session WHERE token = 0

Od token je VARCHAR, MySQL potřebuje převést vaše řetězce na číslo. Spusťte tento dotaz a získáte představu o pravidlech:

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

Výsledkem je fa356333dd3ee8f1b18b8bf0a827e34c přenese na 0 protože to začíná písmenem, tedy shodu.



  1. 5 tipů a triků, které vám pomohou spravovat vaši online databázi

  2. Jaký je nejlepší způsob ukládání souřadnic (zeměpisná délka/šířka, z Map Google) na serveru SQL?

  3. CHYBA:Připojení je v režimu automatického potvrzení

  4. Načítání třídy com.mysql.jdbc.Driver ... je zastaralá zpráva